(57)【特許請求の範囲】
【請求項１】
学習者によって操作され、演奏に応じて演奏データを出力する入力インタフェース、
前記演奏データに基づいて発音する発音手段、
演奏位置と、演奏位置毎の前記学習者が演奏すべき音の音高データを含む楽譜データを格納する楽譜データベース、
手本映像を格納する映像データベース、
前記学習者の演奏が停止したことを検出する停止検出手段、
前記停止検出手段が停止を検出したとき、その停止位置より前において前記学習者の演奏に間違いがあったかどうか判断する判断手段、および
前記判断手段が間違いがあったと判断したとき停止位置より前の前記手本映像を前記映像データベースから読み出して表示し、間違いがなかったと判断したとき前記停止位置より後の前記手本映像を表示する表示する表示手段を備える、演奏学習支援システム。
【請求項２】
前記楽譜データには推奨戻り位置が設定されていて、
前記判断手段は前記停止位置の直前の前記推奨戻り位置までの間に間違いがあったかどうか判断する、請求項１記載の演奏学習支援システム。
【請求項３】
前記学習者の手元映像を撮影するカメラをさらに備え、
前記表示手段は前記学習者の演奏が継続しているとき前記手元映像を表示する、請求項１または２の演奏学習支援システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は合奏支援システムおよび演奏学習支援システムに関し、特にたとえば、初心者同士でも簡単に合奏や連弾を楽しむことができる、新規な合奏支援システムおよび演奏学習支援システムに関する。
【背景技術】
【０００２】
子供がピアノのレッスンを受けている場合など、子供と一緒に合奏を楽しみたいという親の声は多い。
【０００３】
このため、最近では子供向けのみならず、大人のための音楽教室や音楽ソフトも流行っている。中でも、なるべく短い時間で各々の大人が弾きたい曲を演奏できるようにするレッスンやソフトが多い。これらは、子供のように月日を重ねて基礎から学ぶことよりも、いち早く裡にある音楽を表現することを優先していると思われる。しかし、子供といろんな曲で合奏できるようになるには、やはり楽譜上の音符通りに楽器を奏でるという基礎から習得しなければならず、長い年月を要してしまう。
【０００４】
また、ピアノのレッスンでは、合奏の１つである連弾を取り入れることが奨励されている。たとえば、ピアノを習い始めて１週目の子供が、「ド」を数個並べただけの楽曲を練習する際にも、先生が連弾のパートナーとして多様な和音を響かせながら付き添うレッスンが行われている。連弾を通じて生徒の練習意欲が高まったという報告や、子供たちがパートナーの演奏を聴くことで自ら「やりたい表現」を自然に演奏に表すようになったという報告もある。どんなに初心者の子供も、連弾の中で先生と「呼吸」を通わせるという、音楽性を育てる上で不可欠な営みを行っている。
【０００５】
しかし、家庭においてレッスンに通い始めの子供と、楽器演奏経験のほとんどない親とのペアで、練習や楽しみとして連弾を行うことは非常に困難である。これは、市販されているほとんどのピアノ連弾曲集が、少なくともペアの一方が中級以上に想定されていることからも伺える。最近ではピアノ学習用として、予めパートナーの演奏データが用意されたマイナス・ワンを多くみかけるようになった。しかし、マイナス・ワンを利用してもこの方法では一人ひとりの演奏行為と実在的な関わりを持たないため、パートナーと「呼吸」を通わせることができない。
【０００６】
一方、近年、人間の演奏者と合奏するシステムの研究が進んでいる。予め楽譜が与えられている音楽を対象とした自動伴奏システムが非特許文献１や非特許文献２に開示される。非特許文献１のものは、演奏者が出力した音高情報だけを用いたアルゴリズムを示し、非特許文献２のものは、音高と一定時間ごとの演奏時刻とを認識して伴奏を変化させる手法を提案している。
【０００７】
さらに、非特許文献３では、より自然な伴奏システムの演奏を目指して、人間とコンピュータの合奏を分析し、コンピュータと人間との「ずれ」から次の「時間長変化」を予測するモデルを提案している。
【０００８】
また、非特許文献４では、人間とコンピュータの相互作用を考慮したモデルの提案が行われている。
【非特許文献１】Dannenberg、 R．: An On-Line Algorithm for Real-Time Accompaniment、Proc． ICMC 1984、 pp． 193-198、 1984
【非特許文献２】Vercoe、 B．: The Synthetic Performer in the Context of LivePerformance、 Proc． ICMC 1984、 pp． 200、 1984
【非特許文献３】堀内靖雄、坂本圭司、市川憙：合奏における人間の発音時刻制御モデルの推定、情報処理学会論文誌、Vol． 43、Ｎｏ．2、pp． 260-267、 2002
【非特許文献４】井川孝之、直井邦彰、大照完、橋本周司：相互作用モデルによる実時間適応自動伴奏とその動作解析、電子情報通信学会春季全国大会講演論文集、 pp． 1．389-390、 1992
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、以上の研究は、すべて、人間とシステム(コンピュータ)とによる合奏を目的とするもので、この発明が向けられる、人間同士特に初級者同士が合奏するのを支援するシステムを対象とするものではない。
【００１０】
また、初級者同士でも合奏や連弾を容易に行なうことができるシステムが望まれている。
【００１１】
それゆえに、この発明の主たる目的は、新規な、合奏支援システムおよび演奏学習支援システムを提供することである。
【００１２】
この発明の他の目的は、初級者同士でも合奏や連弾が容易に行える、合奏支援システムを提供することである。
【課題を解決するための手段】
【００１８】
請求項１の発明は、学習者によって操作され、演奏に応じて演奏データを出力する入力インタフェース、演奏データに基づいて発音する発音手段、演奏位置と、演奏位置毎の学習者が演奏すべき音の音高データを含む楽譜データを格納する楽譜データベース、手本映像を格納する映像データベース、学習者の演奏が停止したことを検出する停止検出手段、停止検出手段が停止を検出したとき、その停止位置より前において学習者の演奏に間違いがあったかどうか判断する判断手段、および判断手段が間違いがあったと判断したとき停止位置より前の手本映像を映像データベースから読み出して表示し、間違いがなかったと判断したとき停止位置より後の手本映像を表示する表示する表示手段を備える、演奏学習支援システムである。
【００１９】
請求項１の発明では、入力インタフェース（実施例において相当する部分の参照符号１２．以下同様。）が学習者によって操作され、演奏に応じて演奏データとしてＭＩＤＩデータを出力する。入力インタフェースからのＭＩＤＩデータはそのまま発音手段（１６，１８）から発音されるが、このＭＩＤＩは判断手段にも与えられる。そして、判断手段（２０，Ｓ１，Ｓ１１７，Ｓ６０５，Ｓ６０７，Ｓ１００１）では、演奏停止位置より前に演奏誤りがあったかどうか判断する。判断手段が肯定的な判断したときすなわち誤りがあったと判断したとき表示手段は、その停止位置より前の手本映像を「戻り手本」として表示する。判断手段が否定的な判断したときすなわち誤りがなかったと判断したとき表示手段は、その停止位置より先の手本映像を「先読み手本」として表示する。
【００２０】
請求項１の発明によれば、学習者が支援を必要としているときにのみ手本映像を表示するようにしたので、学習者の読譜の学習を妨げることはない。しかも、演奏誤りをしたかどうかで違う手本映像が表示されるので、つまり、停止した理由に応じた手本映像を表示するので、学習者は自分の演奏が間違っていたのかどうか容易に判断することができる。
【００２１】
請求項２の発明は、楽譜データには推奨戻り位置が設定されていて、判断手段は停止位置の直前の推奨戻り位置までの間に間違いがあったかどうか判断する、請求項１記載の演奏学習支援システムである。
【００２２】
請求項３の発明は、学習者の手元映像を撮影するカメラをさらに備え、表示手段は学習者の演奏が継続しているとき手元映像を表示する、請求項１または２記載の演奏学習支援システムである。
【発明の効果】
【００２３】
この発明によれば、第１奏者の演奏位置を追跡し、その位置において第２奏者の演奏データの音高だけを差し替えて合奏や連弾が簡単に行えるような合奏支援システムにおいて、演奏の中断後や終了後に曲の途中から練習する場合でも、システムが推奨する戻り位置（推奨する練習開始位置）を選択または指定することにより、曲の途中であっても、第２奏者は１音目から正しい音高を出力することができる。しかも、支援が必要なときだけ手本映像を表示するようにしたので、学習者の読譜に対する意欲を減じることがない。
【００２４】
この発明の上述の目的、その他の目的、特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００２５】
図１はこの発明の背景となる合奏支援システム１０を示し、この図１に示す合奏支援システム１０は、プリモ用入力インタフェース１２およびセコンド用入カインタフエース１４を含む。ただし、この図１では２つのインタフェース１２および１４を別々に図示しているが、連弾の場合には、１つのインタフェース（鍵盤）を２つの領域に分けて使用することになる。
【００２６】
なお、「プリモ」とは、ピアノ連弾の場合に高音部を担当する演奏者のことであり、「セコンド」は低音部を演奏する演奏者のことを言う。合奏の場合には必ずしもこのような呼称を用いないが、ここでは、便宜上、合奏をリードする演奏者を「プリモ」と呼び、そうでない演奏者を「セコンド」と呼ぶ。ただし、前者を「第１奏者」、後者を「第２奏者」と呼ぶこともある。
【００２７】
プリモ用入力インタフェース１２およびセコンド用入力インタフェース１４はともに、演奏に応じて、ＭＩＤＩ(Musical Instrument Digital Interface)データを出力する。そして、プリモが演奏したことに応じて入力インタフェース１２から出力されるＭＩＤＩデータは、そのまま、なんら処理を施されずにＭＩＤＩ音源１６に入力され、スピーカ１８から音として出力される。プリモ用入力インタフェース１２からの演奏データ（ＭＩＤＩ）はまた、コンピュータ２０にも同時に入力される。同じように、セコンドが演奏したことに応じて入力インタフェース１４から出力されるＭＩＤＩデータもコンピュータ２０に入力される。
【００２８】
簡単に言うと、コンピュータ２０は、プリモの演奏データと楽譜データとを参照しながら、セコンドの演奏だけを支援する。プリモに対しては演奏支援を行わない。
【００２９】
コンピュータ２０が参照すべき楽譜データは、楽譜データベース２２に記憶されている。
【００３０】
図２がこのような楽譜データの基になる記述形式の一例を示す。この例で、「＊」で始まる行には演奏データそのものが記述されているのではなく、その曲を初心者が演奏する場合に戻りやすい位置を示すマーカを記述するようにしている。
【００３１】
Bloch & Dannenberg（Bloch, J. and Dannenberg, R.B.: Real-Time Computer Accompaniment of Keyboard Performances, Proc. ICMC 1985, pp.279-289, 1985）によれば、演奏の誤りは、以下の３つに分類される。
（1）挿入(extra):演奏された音が楽譜上の音と一致しない(余分な音数)。
（2）音高誤り(wrong):楽譜上の音数通りに音を出しているが、音高が不正確である。
（3）脱落(missing):演奏された音が楽譜上の音の数よりも少ない。
【００３２】
しかし、特に初級者の場合はこれらに「弾き直し」が追加されると考えられる。弾き直しとは、「挿入」と同様に楽譜上の音数よりも多く音が演奏されたケースではあるが、楽譜上に記載されていない音や音高列ではなく、楽譜上に記載されている音や音高列が重複して演奏された場合のことを指す。中級者以上になると、練習中に意識して弾き直しする以外は、基本的に失敗しても演奏の流れを止めずに最後までいこうとする傾向がある。一方、初級者は途中で失敗した場合に戻ろうとする傾向が多い。
【００３３】
ピアノレッスンに通いはじめて４年半の小学４年生である、被験者Ａと、ピアノレッスンに通いはじめて１年の保育園生である、被験者Ｂとによって、いずれもプリモとして、様々な練習曲を初見で、演奏してもらった実験によれば、表１に示す結果が得られた。ただし、実験ではセコンドは、発明者の１人が担当した。表１は、弾き直した回数と弾き直すために戻った個所の特徴である。
【００３４】
【表１】
0004743612.tif 000002
【００３５】
「１拍目」とは、小節の１拍目に戻ったことを示す。「第２の強拍」とは、４拍子の３拍目や２拍子の２拍目を指す。「最終拍」とは３拍子の３拍目や４拍子の４拍目を指す。以上の３項目は、弾き直しする直前に弾いた音と同じ小節内の拍である。「フレーズ開始」とは、スラーのはじめや、弱起のメロディのはじまりを指す。「手の替え」とは、１つのメロディの中で、弾く手が右手から左手に替った個所に戻ったことを意味する。以上の２項目は「１拍目」「第２の強拍」「最終拍」のカテゴリには数えていない。「段」とは譜面上で横一列に印刷された数小節の塊を指す。なお「１小節前」とは、弾き直す直前の音の１小節前に戻ったことを意味している。
【００３６】
弾き直しの数は被験者Ａは３７７個所あり、被験者Ｂは１８１個所あった。また、戻り位置は小節の１拍目が８割を占めている。
【００３７】
一方、「挿入」は、被験者Ａに１音、被験者Ｂに６音見られた。「音高誤り」は被験者Ｂに３7音(延べ１１１音)見られた。「脱落」は被験者Ａに３音見られた。
【００３８】
その他、被験者Ａは小節ごとに楽譜を見て弾く傾向があったため、小節の１拍目の直前に楽譜上には記述されていない空白の時間が起りやすかった。そのため、連弾曲ではセコンドが先走って１拍目の音を鳴らし、再度、被験者Ａと一緒に鳴らすという場面が多くみられた。なお、課題にした独奏曲と連弾曲のレベルや曲数等が違うため、一概には言えないが、被験者Ａは連弾曲のほうが弾き直しが少ない傾向にあった。
【００３９】
この実施例では、上記のような実験の結果を参考にして、図２の「＊」が付された行のように、曲を初心者が演奏する場合に戻りやすい位置をマーカとして記述するようにした。そして、マーカとしては、発明者等の実験では、次の４種類を設定できるようにしている。ただし、１箇所に複数種のマーカを同時に設定することもできる。
【００４０】
Ｂ：小節の頭を示す
Ｐ：フレーズの冒頭を示す
Ｒ：印刷された楽譜の「段」の冒頭を示す
Ｓ：その他、任意に設定可能なマーカ
なお、図１の実施例では、これらのマーカの種類に依存した動作の切り替えは行っておらず、マーカの有無だけをチェックするようにしている。つまり、この実施例では、複数種類のマーカを用意しているのは、人が楽譜データを作成するとき、あるいは読むときの便宜のためだけであるが，表１に示す弾き直し箇所の頻度を考慮して、これらの種類に応じて重みづけを調整することにより、より精度の高い弾き直し判定を実現することも可能である。
【００４１】
さらに、図２の記述形式では、楽譜データは、次のように記述される。
(1)「＊」で始まるマーカ行以外は、すべて音符データを記述する。１行には、楽譜上で「同時に」発音されることになっている音を列挙する。
(2)「音名」には、音符の「音価」（つまり４分音符、８分音符などの音の長さ）を無視して、音高のみを記述する。たとえば「Ｃ５」、「Ａ３」など。
(3)プリモあるいはセコンドの演奏者が１人で複数の音を同時に演奏する（和音を弾く）場合には、それらの音名を「，（カンマ）」で繋いで列挙する。
(4)プリモとセコンドとの間は「:（コロン）」で繋ぐ。
(5)ある瞬間、一方のみが発音し、他方は発音する音がない場合、発音する音がない方は音高名を指定しない。
(6)「コメント」は記述してもしなくてもよい。
【００４２】
具体例として図３に示す楽譜は、童謡「たき火」の冒頭４小節であり、この楽譜を図２の記述形式でデータ化したものが図４に示される。ただし、図３では、上段がプリモ、下段がセコンドの楽譜である。
【００４３】
図４において、「＊Ｓ」の箇所は、小節の冒頭でもフレーズの頭でもないが、特に戻り易い箇所として設定した例である。楽譜データは上記のように通常のテキストエディタで容易に編集可能な形式であるため、個々の演奏者に応じて、特に戻り易い箇所がある場合は、このように「＊Ｓ」マーカなどを利用者が自由に埋め込んで、自分用に最適化することも可能である。
【００４４】
この図４の記述データに従って、図５に示す楽譜データが、図１の楽譜データベース２２に格納される。
【００４５】
なお、図５の楽譜データで、ポジション（位置）とは楽譜の最初からのプリモとセコンド両方を通しての音符番号を示す。同時に複数の音が演奏される箇所は、それらの音すべてに同じポジション番号を付与する。たとえばポジション１や５などは、それぞれ３つの音に同じポジション番号を割り当てている。プリモまたはセコンドの一方に演奏すべき音があるが、もう一方には対応する箇所に演奏すべき音がない箇所は空欄となる。たとえばセコンドのポジション２、４など。リターンの欄には、楽譜データでいずれかの種類のマーカが設定されたポジションの箇所にのみ「＊」記号がセットされ、他は空欄となる。現実には、Ｃ言語の構造体のリンクによってこのような楽譜データ表を構成している。
【００４６】
このような図１の合奏支援システム１０において、コンピュータ２０は、図６のステップＳ１において、図７に詳細に示す演奏位置判定処理を実行する。この演奏位置判定処理では、簡単にいうと、楽譜データベース２２から取得したプリモ用楽譜データと、逐次入力されてくるプリモの演奏データ（ＭＩＤＩ）とを照合し、現在楽譜上のどの位置（ポジション）が演奏されているかを判定し、この結果を、続くステップＳ３すなわち図８に詳細に示す演奏音高取得処理に通知する。
【００４７】
ステップＳ３すなわち演奏音高取得処理では、簡単にいうと、楽譜データベースから取得したセコンド用楽譜データを参照し、現在のプリモの演奏位置に対応する箇所をセコンドの楽譜上で見いだし、そこからセコンドが今演奏すべき音の音高データを取得し、これをステップＳ５すなわち図９に詳細に示す音高データ差し替え処理に渡す。
【００４８】
音高データ差し替え処理では、簡単にいうと、セコンド用の入カインタフエースから入力された演奏音のＭＩＤＩデータのうち、音高データを指定する値（ＭＩＤＩノートナンバ）のみを、演奏音高取得処理によって取得した音高データに差し替える。この際、その他のデータ(発音時刻や、音の強さに対応するベロシティ値など)はすべてセコンドが入力した値を保持する。
【００４９】
こうして、音高データだけが差し替えられたセコンドの演奏データ（第２演奏データ）がプリモの演奏データ（第１演奏データ）とともにＭＩＤＩ音源１６（図１）に入力され、スピーカ１８から音として出力される。つまり、ＭＩＤＩ音源１６およびスピーカ１８が発音手段として機能する。
【００５０】
したがって、セコンドは鍵盤上のどの鍵を打鍵しても、各時点で演奏すべき正しい音高の音が出力される。一方、音の強弱や発音タイミングなどの音楽表情に関わる要素はすべてセコンドが演奏したまま出力される。この結果、セコンドは楽譜どおりのメロディを容易に再現でき、かつ表情づけした通りに演奏に反映できる。
【００５１】
また、プリモが演奏しているにもかかわらず、セコンドがしばらく休止した場合(打鍵しなかった場合)でも、コンピュータ２０はプリモの演奏データから演奏位置を認識しているため、いつセコンドが再開しても、正確な音高でプリモと合わせることができる。逆に、プリモが演奏を休止したにも拘らずセコンドが打鍵した場合は、１回目の打鍵はプリモが次に演奏する予定の個所に相当した音高が鳴るが、それ以後はプリモが演奏し始めるまで、音が出なくなるように設定されている。
【００５２】
ここで、図７に示す演奏位置判定処理について、詳細に説明する。ただし、この図７は、プリモの打鍵（入力インタフェース１２の操作）というイベントで駆動されるもので、演奏時点ｔｊにおいてプリモがＰｊの音を演奏したものとして表されていることを、予め留意されたい。
【００５３】
演奏位置検出（いわゆるScore Following/Tracking）に関する研究は８０年代より非常に多数なされている。過去のシステムは、「挿入」、「音高誤り」、「脱落」の３種類の誤りに対して対処しているが、いずれも基本的に大きな誤りは起こらない演奏を前提としている。
【００５４】
これに対して、この発明の合奏支援システム１０では、初心者による練習段階でのきわめて不完全な演奏を取り扱う。この場合、上記のように、弾き直しが非常に多く発生し、演奏位置が何度も繰り返して大きく遡ることが頻発する。したがって、従来のシステムではこのような弾き直しに対処できない。
【００５５】
そこで、この実施例では、先の非特許文献１でDannenbergが提案したＤＰマッチングによる手法を拡張し、弾き直しに対処可能な演奏位置検出手法を改良した。
【００５６】
この実施例の演奏位置検出方法では、Dannenbergの手法同様、各音の楽譜上での音価と演奏音の音長は無視して、音高のみのマッチングで演奏位置を判断する。これは、初心者の演奏では演奏時の音長の変動が極めて大きく、楽譜には無い長い停止も頻発するため、音価と音長はマッチングの対象として扱えないという判断に基づく。
【００５７】
プリモ用の楽譜に含まれる音の数をＮとする。ただし、和音のように複数の音が同時に発音される場合、その個所の音数は、同時に発音する音の数に拘らず「１」とし、最高音のみをマッチングの対象とする。さて、プリモが演奏開始からｊ番目の音Ｐｊを演奏したとき(この時刻を「演奏時点ｔｊ」とする)、前回のマッチングで演奏時点ｔｊ-１での楽譜上の演奏位置がＳｉ（１≦ｉ≦Ｎ)の音であると判定されていたとする。このとき、Ｐｊが楽譜上のどの音にあたるかの判定は、以下のアルゴリズムによって行う。
【００５８】
（1）楽譜上のすべての音Ｓｋ(１≦ｋ≦Ｎ)の音高Pitch（Ｓｋ）と、Ｐｊの音高Pitch
（Ｐｊ）とを比較し、すべての音についてプリモの演奏時点ｔｊにおける重みＷ（Ｓｋ，ｔｊ）を以下の数１に示す方法で評価する。
【００５９】
［数１］
(a) if Pitch（Ｓｋ）＝Pitch（Ｐｊ）
then Ｗ（Ｓｋ，ｔｊ）：＝Ｗ（Ｓｋ-１，ｔｊ-１）＋１
(b) else Ｗ（Ｓｋ，ｔｊ）：＝Ｗ（Ｓｋ-１，ｔｊ-１）−１
ただし、Ｗ（Ｓｋ-１，ｔｊ-１）−１＜０ならばＷ（Ｓｋ，ｔｊ）：＝０とする。
【００６０】
このことを図7で示すと、ステップＳ１０１で音数ｋを「１」に設定する。最初はｋ＜Ｎ（総音数）であるから、ステップＳ１０３で“ＹＥＳ”となり、次のステップＳ１０５で、コンピュータ２０（図１）は、音Ｓｋにおける音高Pitch（Ｓｋ）と、音Ｐｊにおける音高Pitch（Ｐｊ）とを比較する。このステップＳ１０５で“ＹＥＳ”なら、コンピュータ２０は、次のステップＳ１０７で、時点ｔｊでの音符Ｓｋの重みＷ（Ｓｋ，ｔｊ）として、Ｗ（Ｓｋ-１，ｔｊ-１）＋１を設定する。そして、ステップＳ１０９で音数ｋをインクリメントして先のステップＳ１０３に戻る。ただし、この実施例では、ステップＳ１０７で加える値を「１」としたが、この値は「１」でなければならないというものではなく、他の適宜の値を加算するようにしてもよい。
【００６１】
ステップＳ１０５で“ＮＯ”なら、コンピュータ２０は、ステップＳ１１１で、時点ｔｊ−１での音符Ｓｋ−１の重みＷ（Ｓｋ-１，ｔｊ-１）が「１」より大きいかどうか、すなわちＷ（Ｓｋ-１，ｔｊ-１）−１＞０かどうか判断する。“ＹＥＳ”なら、次のステップＳ１１３で時点ｔｊでの音符Ｓｋの重みＷ（Ｓｋ，ｔｊ）としてＷ（Ｓｋ-１，ｔｊ-１）−１を設定する。ただし、ステップＳ１１１で“ＮＯ”なら、次のステップＳ１１５で、時点ｔｊでの音符Ｓｋの重みＷ（Ｓｋ，ｔｊ）として「０」を設定する。
【００６２】
このようなステップＳ１０３−Ｓ１１５をステップＳ１０３で“ＮＯ”が判断されるまで、つまり、すべての音について重みを評価するまで、繰り返し実行する。すべてのポジションで重みを評価した後は、原則的には、最大の重みを示す演奏位置を次の演奏位置として同定する。
【００６３】
すなわち、すべてのポジションについて重みＷを評価したなら、ステップＳ１０３で“ＮＯ”となり、コンピュータ２０は、続くステップＳ１１７で、時点ｔｊでの演奏位置Ｓｉ＋１における重みが、時点ｔｊ−１での演奏位置Ｓｉにおける重みに「１」加えたものと等しいかどうか、つまりＷ（Ｓｉ＋１，ｔｊ）＝Ｗ（Ｓｉ，ｔｊ−１）＋１かどうか判断する。つまり、演奏位置が正しく更新されているかどうか判断する。ただし、この実施例では、ステップＳ１１７で加える値を「１」としたが、この値は「１」でなければならないというものではなく、他の適宜の所定値を加算するようにしてもよい。
【００６４】
ここで、このステップＳ１１７での条件判定について詳しく説明する。このステップＳ１１７では、演奏時点ｔｊにおける演奏位置の判定を試みている状態である。そして、演奏時点ｔｊ−１での演奏位置がＳｉである。したがって，Ｗ（Ｓｉ， ｔｊ−１）とは、前回の判定（ｔｊ−１）時点での判定で「ここが演奏位置だ」と判定した箇所の重みである。そして、Ｗ（Ｓｉ＋１，ｔｊ）とは、楽譜上でＳｉの次の音Ｓｉ＋１の、今回（ｔｊ時点）での重み付け処理の結果得られた重みである。そして、Ｗ（Ｓｉ＋１，ｔｊ）の値がＷ（Ｓｉ， ｔｊ−１）の値に「１」を加えた値になっていた場合（Ｗ（Ｓｉ， ｔｊ−１）が図７のＳ１０７の処理によって１加算されていた場合）に、Ｓｉ＋１をｔｊ時点での演奏位置と判定するものである。
【００６５】
そして、このステップＳ１１７で“ＹＥＳ”なら、演奏位置が正しいのであるから、次の演奏位置Ｓｉ＋１をｔｊ時点の演奏箇所として、図7の演奏位置判定処理（図６のステップＳ１）を終了する。
【００６６】
(2)もし、Ｗ（Ｓｉ＋１，ｔｊ）≠Ｗ（Ｓｉ，ｔｊ−１）＋１であれば、ステップＳ１２１以降を実行して、演奏誤り（弾き直しを含む）への対応を行う。つまり、ステップＳ１１７で“ＮＯ”が判断されるということは、プリモは演奏を間違ったことを意味し、以下、正しい演奏位置を同定する処理を実行することになる。
【００６７】
まず、弾き直しについて、詳しく説明すると、「１」から「ｉ」の範囲にあって、かつ楽譜上の小節、フレーズ、段およびページ頭など、前述の実験（表１）で得られた「弾き直しが発生し易い個所」として予め楽譜データ上に指定されている個所すべての重みを、Ｗ（Ｓｉ＋１，ｔｊ）−ｍ（ｍは正の定数）とする。つまり、弾き直し位置マーカの設定されている演奏位置の重みをすべて最大より「ｍ」小さい値に設定する。ただし、その個所の元の重みがこの計算で得られた重みより大きい場合は、値を変更しない。なお、発明者等の実験においてｍの値は、経験的に「２」としている。ｍの値を小さくすると、弾き直しへの追従性が向上するが、一方で類似したパターンが繰り返し現れる楽曲の場合、軽微な誤り（音脱落など）で演奏個所の認識誤りを招く可能性が高くなる。つまり、ｍ個の音数だけ余裕を見て「弾き直し箇所」と思われる箇所からの音がｍ個連続して弾かれたとき初めて「弾き直し」として判定するようにしている。これによって、１音程度の音の抜けや挿入などの微少な誤りに過剰に反応しないようにしている。
【００６８】
ついで、挿入、音高誤り、脱落への対応について説明する。位置Ｓｉ-ｒからＳｉ+ｒまでの範囲の音すべてについて、重みをＷ（Ｓｉ+１，ｔｊ）と同じにする。つまり、ｔｊ-１時点での現在演奏位置の前後ｒ音ずつをｔｊ時点での演奏位置としての可能性を高く評価することにより、ｒ個までの挿入や音高誤り、脱落に対処している。なお、音数ｒは正の定数とし、実験においてはｒの値は、経験的に「２」としている。この値を大きくすると、より多数の音にわたる誤りに対処できるが、大きくし過ぎると可能性の範囲が広がりすぎ、逆に誤った一致箇所を見いだしてしまう危険性が高くなる。
【００６９】
(3)そして、重みＷ（Ｓｋ，ｔｊ）（ただし、１≦ｋ≦Ｎ）最大値をとる個所を現在の
演奏位置とするのであるが、もし同じ重みの個所が複数ある場合は、以下の順に優先する。(a) 重みＷ（Ｓｋ，ｔｊ）が最大値をとる箇所が唯一であるならば、そのときの重みＷ（Ｓｋ，ｔｊ）が最大値となる位置Ｓｋを現在の演奏位置とする。
(b) 重みＷ（Ｓｋ，ｔｊ）が最大値をとる箇所が複数個あるならば、現在の演奏位置が次のようにして決められる。
【００７０】
(i)Ｓｉに最も近い最大値を取る個所Ｓｋが唯一であるならばその個所Ｓｋを現在の演
奏位置とする。
【００７１】
(ii)Ｓｉに最も近い最大値を取る個所が複数個ある場合、すなわちＳｉから等距離の位置Ｓｉ-ｄとＳｉ+ｄとに最大値が生じる場合は、Ｓｉ-ｄを現在の演奏位置とする。
【００７２】
このことを図７を参照して説明すると、図７のステップＳ１１７で“ＮＯ”となったときには、コンピュータ２０は、次のステップＳ１２１において、すべての弾き直し位置Ｓｈ（表１においてリターンのマーカが付与されている箇所）の重みとして、それらの重みを、最大よりｍだけ小さい値にするために、Ｗ（Ｓｉ＋１，ｔｊ）−ｍを設定する。ついで、ステップＳ１２３で、コンピュータ２０は、ステップＳ１２３で、位置Ｓｇ（＝ｉ-ｒ≦ｇ≦ｉ+ｒ）での重みＷ（Ｓｇ，ｔｊ）をＷ（Ｓｉ+１，ｔｊ）とする。つまり、そのときの演奏位置の前後の演奏位置の重みを等しくする。
【００７３】
そして、ステップＳ１２５において、重みＷ（Ｓｋ，ｔｊ）（ｋ＝１〜Ｎ）が最大値をとる個所が複数あるかどうか判断する。“ＮＯ”の場合には、ステップＳ１２７において、コンピュータ２０は、重みＷ（Ｓｋ，ｔｊ）が最大値となる位置Ｓｋを現在ｔｊの演奏位置とする。
【００７４】
ステップＳ１２５において“ＹＥＳ”が判断されたときには、すなわち、重みＷ（Ｓｋ，ｔｊ）が最大値を取る個所が２以上存在するときには、続くステップＳ１２９において、コンピュータ２０は、位置Ｓｉに最も近い最大値の演奏個所Ｓｋが複数存在かするかどうか、判断する。ステップＳ１２９で“ＹＥＳ”のときには、コンピュータ２０は、ステップＳ１３１において、ｋ＜ｉの演奏個所Ｓｋを現在の演奏位置とする．ステップＳ１２９で“ＮＯ”なら、ステップＳ１３３で、コンピュータ２０は、位置Ｓｋを現在の演奏位置とする。
【００７５】
以上のアルゴリズムによって、従来から扱われてきた３種類の演奏誤りに加えて、初心者の演奏で頻発する「弾き直し」に対しても追従できる頑健な演奏追跡処理が実現される。
【００７６】
実験によれば、「弾き直しへの対応」を行った場合と行わなかった場合とでは、前者では、たとえば３音の誤認識の後正しい位置を検出した。これに対して、同じ曲でも後者の場合には、弾き直し後に正しい位置を検出するまでに１３音の誤認識が生じた。このように、この実施例の演奏位置判断アルゴリズムを採用した場合には、弾き直しへも十分実用的なレベルでの追従が可能となった。
【００７７】
次に、図８を参照して、演奏音高取得処理（図６のステップＳ３）を説明する。
【００７８】
演奏音高取得処理も、図７と同様に、プリモの打鍵というイベントによって駆動される。したがって、図８の最初のステップＳ３０１で、コンピュータ２０は、プリモのそのときの演奏位置Ｓｉのデータを受ける。そして、ステップＳ３０３における一定時間Ｔｗミリ秒の経過の後、ステップＳ３０５で、コンピュータ２０は、位置Ｓｉ＋１にセコンドが演奏すべき音が楽譜上にあるかどうか判断する。“ＮＯ”なら、ステップＳ３０７において、コンピュータ２０は、セコンドが演奏すべき音を「なし（０）」に設定する。一方、ステップＳ３０５で“ＹＥＳ”の判断をしたとき、つまり、位置Ｓｉ＋１においてセコンドが演奏すべき音があるとの判断をしたときには、次のステップＳ３０９において、コンピュータ２０は、そのときセコンドが演奏可能な音をたとえば図５のセコンドの欄に指定された音に設定する。
【００７９】
したがって、プリモが誤りなく演奏している場合、位置（ポジション）Ｓｉは１、２、３、４、…と順に演奏位置がこのルーチンに投入される。たとえばＳｉ＝９とプリモの演奏ポジションが通知された場合、Ｔｗミリ秒の間をとった後、ポジションＳｉ＋１=１０
の位置にセコンドが演奏する音が指定されているかどうかを調べる。図５の例では、セコンドのポジション１０の位置には音が指定されていないので、ステップＳ３０５での判定は“ＮＯ”となる。したがって、セコンドが演奏可能な音は「なし」と設定される。この状態では、セコンドが打鍵しても何も発音しない。
【００８０】
引き続きプリモが誤りなく演奏を続けた場合、Ｓｉ=１０でも同様の処理が行われ、セコンドは何も発音できない状態が続く。さらに、プリモの演奏位置がＳｉ＝１１となったとき、Ｔｗミリ秒の間を置いた後、ポジションＳｉ＋１（＝１２）のセコンドの演奏音を確認する。表１の例では、セコンドのポジション１２には「Ｃ５」の音が指定されているので、ステップＳ３０５の条件判定の結果は“ＹＥＳ”となり、ここでセコンドが演奏可能な音として、「Ｃ５」が設定され、発音可能状態になる。以上の手順で、プリモに誤りがない場合のセコンドの演奏可能音は切り替えられていく。
【００８１】
次に、セコンドが誤って発音すべき音を発音し忘れた場合について説明する。セコンドの演奏可能音は、セコンドによる打鍵がない限りは実際には発音されない。セコンドによる発音がされないままの状態で、プリモが次のポジションを演奏し、新しい演奏位置情報Ｓｉが図８のアルゴリズムに入力されると、セコンドが先の音を実際に発音したかどうかに拘らず、このアルゴリズムが実行され、セコンドが演奏すべき音も更新される。たとえばポジション３の位置でセコンドが演奏し、「Ｇ４」の音を発音したとする。その後、プリモがポジション４、５と演奏を進めると、セコンドの演奏可能音は「Ｂ４」に更新される。しかし、この状態でセコンドが誤って演奏しないままプリモがさらにポジション６、７と演奏を進めると、「Ｂ４」の音は発音されないまま、セコンドの演奏可能音は「Ｇ４」に切り替わる。したがって、この状態でセコンドが演奏すると、演奏し忘れた「Ｂ４」ではなく「Ｇ４」の音が発音する。このようにして、セコンドが誤っていくつかの演奏音を飛ばしてしまっても、セコンドの演奏可能音は常にプリモの演奏位置に対応したものとなるため、セコンドが途中で演奏を再開しても、飛ばした音ではなく、今弾くべき音が正しく発音される。
【００８２】
一方、セコンドが誤って本来演奏すべきでない箇所で余分に演奏した場合について説明する。たとえばポジション９でセコンドが演奏し「Ａ４」の音を発音したとする。この直後、プリモがポジション１０の音を演奏しないうちにセコンドが再び打鍵した場合を考える。もしこの再打鍵がプリモのポジション９の音（Ｃ５）の打鍵よりＴｗミリ秒以内であれば、再度「Ａ４」の音が発生する。一方、プリモのポジション９の音（Ｃ５）の打鍵よりＴｗミリ秒以上経過した場合は、次のポジション１０の音が発音される。ただし、現在の例ではセコンドのポジション１０には演奏可能音が指定されていないため、この場合は何も発音しないことになる。引き続き、プリモがポジション１０に演奏を進めた場合、セコンドの演奏可能音はポジション１１に指定されていない。ゆえに、ここでセコンドが打鍵しても、依然として何も発音されない。さらにプリモがポジション１１の音を発音し、Ｔｗミリ秒以上経過すると、セコンドの演奏可能音はようやくポジション１２の「Ｃ５」に設定される。以上のように、セコンドが何度余分な打鍵をしても、セコンドの演奏位置だけが一方的に先走ることは起こらない。余分な音の挿入が生じる可能性はあるが、それによってプリモとセコンドの演奏位置がずれることはない。
【００８３】
以上はプリモが演奏を誤らない場合の処理の流れの説明であるが、次にプリモが演奏を誤って、いくつかの音を飛ばした場合の処理を説明する。この場合も、基本的に処理の概要は変わらない。プリモが演奏を誤った場合は、演奏位置判定ルーチンから通知されるポジションデータＳｉが前回と不連続になるだけであり、そのことはこのアルゴリズムの処理に関係しない。たとえば、プリモがポジション１２の音を演奏した後、ポジション９に戻った場合を考える。この場合、演奏位置判定モジュールから通知される演奏位置情報は、演奏位置判定が理想的に動作すれば、Ｓｉ＝１２の次にＳｉ＝９が図７に示す音高取得のアルゴリズムに通知される。Ｓｉ＝１２が通知されてＴｗミリ秒経つと、セコンドの演奏可能音はポジション１３の「Ｂ４」となっている。この状態でプリモがポジション９の音を弾き、ほぼ同時にセコンドが打鍵すると、セコンドの演奏音はそのままポジション１３の「Ｂ４」となってしまう。これは回避できない誤りである。しかし、演奏ポジションとしてＳｉ＝９が通知されているので、次のセコンドの演奏可能音はポジション１０の音となる。
【００８４】
この例ではセコンドのポジション１０の位置は空白なので、この場合は演奏可能音「なし」となる。以下、プリモが誤り無く演奏を続ければ、先に述べたのと同様に処理が進む。
【００８５】
ここで、ステップＳ３０３でのＴｗミリ秒の遅延の意味について説明する。楽譜を単純に用いるならば、たとえばプリモがＳｉ＝１３の音（すなわち「Ｄ５」）を弾いた瞬間に、セコンドの演奏可能音も同時にポジション１３の「Ｂ４」にすればよいことになる。しかし、現実にはプリモとセコンドの演奏タイミングが全くずれなしで一致することはありえない。プリモが若干先行する場合もあれば、セコンドが若干先行する場合もある。プリモが先行し、セコンドが遅れる場合は、上記のような同時切り替えを行っても問題なく、ポジション１３の位置でプリモが「Ｄ５」の音を弾いた直後にセコンドは「Ｂ４」の音を弾くことができる。しかし、セコンドが先行し、プリモが遅れた場合は、セコンドは切り替えられていない「前の音」を演奏してしまうことになる。つまり、ポジション１３の箇所でセコンドが先行してしまうと、セコンドは本来弾くべき「Ｂ４」の音ではなく、前の音である「Ｃ５」の音を弾いてしまうことになり、不都合である。
【００８６】
この問題を回避するために、Ｔｗミリ秒の間を設けて、その後にセコンドの演奏可能音を切り替えている。Ｔｗミリ秒の時間は、プリモとセコンドが同時発音すべき時に、セコンドがプリモよりも遅れる可能性のある時間幅の最大値で、現在のシステムでは２００ミリ秒としている。つまり、このアルゴリズムでは、たとえばプリモがＳｉ＝１１の「Ｅ５」の音を弾いたＴｗミリ秒後に、セコンドが弾ける音はポジション１２の「Ｃ５」の音に設定される。この状態で、プリモがＳｉ＝１２の「Ｅ５」を弾くと、その瞬間からＴｗミリ秒間は、セコンドは現在設定されている「Ｃ５」を弾ける状態が維持される。つまり、セコンドはプリモよりも遅延することＴｗミリ秒未満であれば、ここで弾くべき正しい音である「Ｃ５」を演奏できる。しかし、Ｔｗミリ秒以上セコンドによる発音が無い場合は、セコンドが今弾くべき音を「弾き忘れた」とシステムは見なし、次のポジション１３の「Ｂ４」の音を弾くべき音に設定し、次のプリモのＳｉ＝１３の発音に備える。このため、プリモがＳｉ＝１３の「Ｄ５」の音を演奏していない場合でも、セコンドの演奏音はすでにポジション１３の音になっているため、セコンドがプリモに若干先行して発音してしまっても、演奏すべきポジション１３の「Ｂ４」が正しく演奏される。以上のメカニズムによって、プリモとセコンドの演奏タイミングのずれによる演奏音の不一致の問題を吸収している。
【００８７】
続いて、図９に示す音高データ差替え処理（図６のステップＳ５）について詳しく説明する。この図９の処理は、セコンドによる打鍵というイベントで駆動され、最初のステップＳ５０１で、コンピュータ２０は、楽譜データを参照して、位置Ｓｉ＋１にプリモの演奏すべき音があるかどうか判断する。“ＹＥＳ”ならそのままこのルーチンを抜けるが、“ＮＯ”なら、次のステップＳ５０３において、コンピュータ２０は、セコンドが演奏可能な音を、楽譜データの位置Ｓｉ＋１のセコンドの欄に指定されている音に変更する。
【００８８】
具体的に説明すると、図９の音高データ差替えのアルゴリズムは、プリモに演奏すべき音がなく、セコンドにのみ演奏すべき音がある場合の処理を行っている。ここで扱っている例で言えば、ポジション１４〜１６の場所がこの場合にあたる。プリモがポジション１３の「Ｄ５」を演奏してＴｗミリ秒経過すると、セコンドの演奏可能音はポジション１４の「Ａ４」になっている。この状態でセコンドが打鍵するとこの「Ａ４」の音が発音されると同時に、この図９のアルゴリズムが動作する。
【００８９】
プリモ側の演奏位置Ｓｉは１３のままなので、ポジションＳｉ＋１（＝１４）のプリモの楽譜データを調べ、プリモがポジション１４で演奏する音があるかどうかを確認する。この例では、プリモにはポジション１４で演奏するデータがないので、条件判定は“ＮＯ”となる。この場合、現在の演奏位置をＳｉ＝Ｓｉ＋１（＝１４）とし、セコンドの演奏可能音をＳｉ＋１（＝１５）の「Ｇ４」に設定する。この状態でセコンドが再度打鍵すると、「Ｇ４」の音が発音されると同時に、再度第２のアルゴリズムが動作し、以上と同様の処理を実施する。このようにして、プリモに演奏データが無い場合は、プリモではなくセコンドが演奏進行のイニシャティブを取って、プリモの演奏とは無関係に独自に演奏を進行させられるようになる。
【００９０】
なお、セコンドがまだポジション１６まで演奏し終わっていない状態でプリモがポジション１７の音「Ｅ５」を演奏した場合、演奏位置Ｓｉは一気にポジション１７に移動し、セコンドの未演奏音は無視されることになる。これは、演奏位置判定ルーチンが、セコンドの演奏位置を考慮しておらず、プリモの演奏データと楽譜データのみを参照しているためである。しかし、これはアルゴリズムの不備ではない。なぜならば、この実施例のシステムはあくまでプリモ主導のシステムであり、セコンドが主導となるのは限られた箇所で例外的に生じる状態であるからである。ゆえに、たとえセコンドのみが演奏すべき箇所であっても、プリモが演奏を再開した場合は、即座にプリモに主導権を渡す必要がある。この結果、プリモが間違って早く次の演奏位置に移動してしまっても、セコンドは正しくプリモの演奏位置に相当する演奏音を発音できる。
【００９１】
ところで、セコンドの打鍵があれば無条件にこの図９に示すアルゴリズムが起動されるので、実際にはプリモに演奏可能音が無い場合だけでなく、プリモに演奏可能音がある場合にもこの図９のアルゴリズムは起動する。しかし、その場合に、演奏位置Ｓｉ＋１にプリモが演奏すべき音があるかの条件判定が“ＹＥＳ”となるため、演奏ポジションＳｉもセコンドの演奏可能音も変更されない。つまりこの場合は結局何もしないでこのアルゴリズムは終わる。
【００９２】
以上のような、図８および図９に示す２つの簡単なアルゴリズムの非同期動作によって、プリモとセコンドの演奏位置が常に一致するように動作する。
【００９３】
このように、この発明の背景となる図１の合奏支援システム１０で発明者等が何組かのペアに頼んで行った実験によれば、いずれのペアも、この支援システムを利用することによって、すぐに合奏（連弾）が可能になった。
【００９４】
図１の合奏支援システム１０では、初級者が誤った後に弾き直しを開始しやすい箇所に予めマーカをつけたため、合奏途中にプリモが勝手に弾き直しても、システムはすぐに追従することができ、セコンドは適切な音を出力することができる。しかしながら、人間同士の合奏でもそうだが、いきなりプリモが前に戻って弾き直しをした場合に即座にその弾き直し箇所を見つけて合わせることはかなり難しい。実施例の合奏支援システム１０でも、プリモが弾き直ししてから少なくとも３音程度の間はセコンドも正確な音を出すことはできない。
【００９５】
一方で、このような１曲を通した演奏途中での弾き直しではなく、演奏を途中で止めたり、最後まで演奏した後に、誤りのあった箇所だけを部分的に練習しようとすることがある。そこで、図１０以下に説明するこの発明の一実施例の合奏支援システム１０では、プリモが誤りをした箇所を２人で練習するときに、１音目からセコンドも正確な音を出せるようにすることを意図している。
【００９６】
また、合奏支援システム１０の弾き直しに対応する手法は、演奏と映像とを同期的に再生する場面にも応用することができる。各奏者が演奏すべきパートの教師による模範演奏の映像ととともに独習する場合には、奏者が弾き直ししても、映像が自動的に奏者の位置を追従して適切な映像を再生することができる。たとえば、合奏支援システムを使うまったくの初心者であるセコンド（第２奏者）が打鍵するタイミングを知るために、教師による模範映像を前にしながら、プリモと合奏練習することができる。この場合は、プリモが弾き直しすると、セコンドの模範映像もプリモの弾き直し位置に戻ることができる、という使い方である。
【００９７】
図１０の実施例の合奏支援システム１０は、図１実施例のシステムに比べて、楽譜データベース２２が楽譜および映像データベース２２ａに変更され、さらに、コンピュータ２０にタッチパネル表示器２４が付設された点が異なるだけで、他の部分は共通である。共通部分は説明は省略する。
【００９８】
なお、タッチパネル表示器２４とは、たとえばＣＲＴ、液晶、プラズマなどからなる表示器の表示画面上にタッチパネルが付設されていて、ユーザがペンや手あるいは指でのタッチパネルの任意の位置にタッチするとそのタッチ位置の座標が検出され、したがって、ユーザのタッチ位置がどこか判別できる、そのような表示器のことである。
【００９９】
楽譜および映像データベース２２ａには、先に説明した図５に示すような楽譜データが格納されているとともに、図１１に示す連動テーブルのように、各楽譜ポジション毎に、そのポジションで再生する映像データのタイムコードが、開始時間と終了時間として設定されている。つまり、この図１０のシステム１０では、プリモの演奏の進行に合わせて、予め準備している映像を同期的に再生するものであるが、上述のようにプリモの「弾き直し」に対応できるようにするために、楽譜ポジション毎に、そのポジションでの映像の再生開始のタイムコードが開始時間として、再生終了のタイムコードが終了時間として、それぞれ設定される。たとえばポジション「１２」まで進んだときタイムコード「００００００００１１０１」から映像が再生されるが、間違ったのでポジション「９」まで戻って弾き直ししたとすると、映像は、タイムコード「０００００００００８０１」で示す位置に飛んで、そのポジション「９」に固有に割り当てられている映像が正しく再生されるのである。
【０１００】
なお、このように演奏と同期して再生される映像は、基本的にはどのような種類のものであってもよいが、たとえばピアノを弾く手の映像（模範映像）などが考えられる。そして、そのような映像のデータは、図５に示す楽譜データや図１１に示す連動テーブルとともに、楽譜および映像データベース２２ａに格納されている。
【０１０１】
図１０の実施例においても、図６のフローチャートで示す手順に従ってプリモとセコンドの演奏が進行されるのであるが、コンピュータ２０は、図６の演奏位置判定処理Ｓ１において、さらに、図１２に示すフローチャートを実行して、プリモの演奏に間違いがあったかどうか判定する。
【０１０２】
図１２のステップＳ６０１では、まず、コンピュータ２０は、このコンピュータ２０内のメモリに設定されたタイマＴに所定数値たとえば「４」を設定する。このタイマＴは、演奏が停止されたかどうかを判断するためのタイマである。実施例でいえば、プリモが打鍵してからたとえば４秒間打鍵しなかった場合に演奏が停止されたと判断できる。このタイマＴは、図示しない別のタイマ割り込みによって、１秒毎にディクリメントされ、Ｔ＝０になったとき、プリモの演奏が停止したと判断する。
【０１０３】
次のステップＳ６０３では、コンピュータ２０は、レジスタＳｈおよびＳｐを初期化する。レジスタＳｈは間違いのあった位置（ポジション）を記憶しておくためのレジスタであり、レジスタＳｐは、コンピュータ２０が推奨する、弾き直し位置（推奨戻り位置あるいは練習開始位置）を記憶しておくためのレジスタである。この初期設定が終わった後、コンピュータ２０は、ステップＳ１０１−Ｓ１１７を実行して、プリモの演奏位置に誤りがあったかどうか判断する。
【０１０４】
ただし、これらのステップＳ１０１−Ｓ１１７は先の図６に示すステップＳ１０１‐Ｓ１１７と同一であるので、ここでは、重複する説明は省略するが、ステップＳ１１７では、楽譜上での次の位置での重みＷ（Ｓｉ＋１，ｔｊ）の値と今回の位置での重みＷ（Ｓｉ， ｔｊ−１）の値に「１」を加えた値とが同じであるとき、演奏位置に間違いはなかったと判断する。
【０１０５】
したがって、ステップＳ１１７で“ＹＥＳ”が判断されたときには、演奏位置は正しいものとして、次のステップＳ６０５で演奏間違いはないとの判定を行い、たとえば図７のステップＳ１１９を実行する。
【０１０６】
逆に、ステップＳ１１７で“ＮＯ”が判断されたときには、次のステップＳ６０７で、コンピュータ２０は、次の演奏位置Ｓｉ+１を間違い位置としてレジスタＳｈに設定され
る。したがって、レジスタＳｈには、プリモが演奏を停止するまでに間違った演奏位置のすべてが保存されることになる。
【０１０７】
図１２のステップＳ６０１で設定したタイマＴが実施例では４秒をカウントしたとき、すなわち、プリモが演奏を停止したときに図１３に示す処理が開始される。
【０１０８】
最初のステップＳ７０１では、コンピュータ２０は、レジスタＳｈを参照して、その時刻Ｔｊにおける演奏位置（Ｓｋとする）までに、誤り位置があったかどうか、すなわちＳｈ≠−１か、かつＳｈ＜ＳｋとなるＳｈがあるかどうか判断する。このステップＳ７０１で“ＮＯ”が判断されるということは、プリモの演奏は停止したものの、間違いはなかったことを意味し、この場合には、そのまま終了する。
【０１０９】
ステップＳ７０１で“ＹＥＳ”が判断されたときには、少なくとも１つ、間違いがあったことが登録されているので、次のステップＳ７０３で、コンピュータ２０は、それぞれの誤り位置Ｓｈより所定ｍ（実施例では経験的に「４」としている。)小節前までに、つまり停止位置から４小節以内に、推奨戻り位置がレジスタＳｐに登録されているかどうか判断する。なお、この推奨戻り位置（弾き直し位置または練習開始位置）とは、先の図５の表で「＊」で示したリターン位置のことを意味する。つまり、この実施例のシステムでは、プリモが弾き直しのために戻り易い位置をリターン位置マーカとして予め設定するようにしているので、そのリターン位置マーカをＳｐとして検出するようにしている。したがって、このステップＳ７０３では、図４のような楽譜データを参照して、戻り位置Ｓｐの有無を検出する。
【０１１０】
そして、ステップＳ７０３で“ＹＥＳ”のときには、ステップＳ７０５で、すべてのマーカ箇所（＊印）Ｓｐに相当する電子楽譜上の五線譜の上にマーク（実施例では二重丸）をつけ、ステップＳ７０９において、その五線譜の電子楽譜をタッチパネル表示器２４（図１０）に表示して終了する。ステップＳ７０３で“ＮＯ”のときには、ステップＳ７０７でその曲の最初にマーク（実施例では二重丸）をつけて終了する。
【０１１１】
一例が図１４に示される。図１４の例の電子楽譜では、プリモのパートが上段に五線譜として表示され、セコンドのパートはその下にリズム譜として表示される。その電子楽譜の五線譜の中に「Ｓｈ」の記号が示されているが、その位置は間違えた位置である。図１
４の例では、ポジション「１１」すなわち第３小節目の第３番目の音符の位置が間違い位置である。そして、その位置より前に３つの二重丸マークが表示されている。ただし、括弧書きで示した先頭の二重丸マークはステップＳ７０３で“ＮＯ”の判断がなされたとき、つまり、間違い位置Ｓｈより４小節前までにマーカ（＊）が設定されていないと判断されたときに付されるものである。つまり、図１４の例で、仮に、第２小節にも第３小節にも二重丸マークがないと判断したときには、曲の先頭に二重丸マークが付される。図１４の例では、第２小節および第３小節の２箇所に二重丸マークが表示されているので、この例の場合には、間違い位置Ｓｈより前に３つの推奨戻り位置Ｓｐが設定されていることを意味している。
【０１１２】
図１４のようにタッチパネル表示器２４に表示された電子楽譜を見て、推奨戻り位置の中で自分が戻りたい位置をタッチする。コンピュータ２０がプリモのタッチ位置を検出し、そのタッチ位置が推奨戻り位置マークを表示している位置であると、それに応じて、図１５の処理が実行される。
【０１１３】
図１５の最初のステップＳ８０１では、コンピュータ２０は、演奏位置ｋとして、レジスタ（図示せず）に、プリモが停止したｔｊ時の演奏位置として設定する。続くステップＳ８０３で、コンピュータ２０は、レジスタｍａｘに「−１」を設定する。このレジスタｍａｘは、上記停止位置から前の各ポジションのうち最大の重みＷを有するポジションを探すために利用される。
【０１１４】
詳しく述べると、ステップＳ８０３でレジスタｍａｘに−１を設定した後、次のステップＳ８０５において、コンピュータ２０は、ｋが「０」より大きいかどうか、すなわち演奏位置が曲の先頭（ポジション０）より後かどうか判断する。通常、“ＹＥＳ”であるから、そのままステップＳ８０７に進み、そこでは、コンピュータ２０は、ｔｊ時間のときの演奏位置Ｓｋの重みＷ（Ｓｋ，ｔｊ）がレジスタｍａｘの設定値より大きいかどうか判断する。レジスタｍａｘには上述のように「−１」を初期値として設定しているので、最初は、このステップＳ８０７では“ＹＥＳ”が判断される。したがって、次のステップＳ８０９に進み、レジスタｍａｘの値をそのときの演奏位置の重みＷ（Ｓｋ，ｔｊ）に更新する。そして、次のステップＳ８１１で演奏位置ｋを更新して、ステップＳ８０５に戻る。このようにして、ステップＳ８０５−Ｓ８１１を繰り返し実行することによって、プリモの停止位置より前で最大の重みＷを持つポジションを検出する。
【０１１５】
最大重みを検出するために変更している演奏位置が先頭までくると、ステップＳ８０５で“ＮＯ”が判断されることになり、次のステップＳ８１３で、コンピュータ２０は、そのときレジスタｍａｘに設定されている重みＷに１を加えた値を、電子楽譜上で表示されている二重丸マーク（図１４）のうち、プリモまたはセコンドがタッチしたマークの直前の位置Ｓｐ−１の重みとして設定する。そうすることによって、次に弾き始める位置、図１４の例では第３小節の最初の音符（第９ポジション）が図７の処理によって設定または決定されることになる。つまり、次に弾き始める１つ手前のポジションに重みの最大値を強制的に書き込む。それによって、プリモが指定した推奨戻り位置Ｓｐから確実に追跡することができる。
【０１１６】
そして、ステップＳ８１５でコンピュータ２０は、その位置Ｓｐにセコンドの演奏すべき音（休符ではない）があるかどうか、楽譜データを参照して判断する。あれば、ステップＳ８１７で、図８のステップＳ３０９と同様に、セコンドの演奏音を位置Ｓｐで指定されている音に設定する。なければ、図８のステップＳ３０７と同様にセコンドの音はないものとして処理する。したがって、演奏の中断後や終了後に曲の途中から練習する場合には、システムが推奨する戻り位置（推奨する練習開始位置）の中でプリモ等が位置を選択または指定することにより、曲の途中であっても、セコンドは１音目から正しい音高を出力することができる。
【０１１７】
なお、図１４に示すように、推奨戻り位置Ｓｐが付記された電子楽譜をタッチパネル表示器２４に表示しても、プリモが、誤り箇所の少し前（システムが推奨する戻り位置）から練習しないという選択をするかもしれない。この実施例はその場合にも対応できるようにしていて、一例として、プリモはソステヌートペダル（sostenute pedal：ピアノで３つあるペダルのうちの真ん中のペダル。このペダルは普通の演奏時には、たとえば和音を弾くために、その時弾いている音だけを伸ばしたいときに使用する。）を踏むことによって、弾き直し練習はしない、という意思表示が行える。
【０１１８】
ソステヌートペダルをプリモが踏んだときの処理が図１６に示される。プリモが弾き直しをしないためにソステヌートペダル（図示せず）を踏んだとき、コンピュータ２０は、最初のステップＳ９０１で間違い位置レジスタＳｈを初期化するとともに、次のステップＳ９０３において、タッチパネル表示器２４に推奨戻り位置Ｓｐが表示されているかどうか判断する。推奨戻り位置が表示されていないときには、コンピュータ２０は何もしない（ステップＳ９０５）が、表示されている場合には、ステップＳ９０７で、レジスタの推奨戻り位置をクリア（初期化）するとともに、次のステップＳ９０９でそのマーク（二重丸）を消す。このように、ソステヌートペダルを踏むことによってプリモが推奨戻り位置からの戻り演奏を拒否したときには、電子楽譜の推奨戻り位置のマークが消され、システムは演奏追従を引き続き行う。
【０１１９】
また、図１２のステップＳ６０３でも、レジスタＳｈおよびＳｐの初期化を行わず、いきなり演奏を続けても、弾き直し練習をしないことを選択することはできる。
【０１２０】
なお、上述の実施例では、推奨戻り位置とともに電子楽譜を表示するためにタッチパネル表示器２４を用い、推奨戻り位置をプリモが選択または指定するために、そのタッチパネルを利用するようにした。つまり、戻り位置の指定のための手段（戻り位置指定手段）としてタッチパネルを使用した。
【０１２１】
しかしながら、このような戻り位置指定手段としては、タッチパネル以外に、たとえばコンピュータ２０に関連して設けられたキーボードやマウスのような入力装置が利用可能である。
【０１２２】
さらに、上述の実施例では、戻り練習をしないことを入力するためにソステヌートペダルを用いることにした。しかしながら、この場合も、ソステヌートペダルに代えて、上述のような入力装置が利用されてもよい。
【０１２３】
また、上述の説明は、プリモとセコンドとが合奏または連弾する場合について説明した。しかしながら、図１０実施例の合奏支援システムでは、プリモが１人で演奏する場合にも、上述のように誤り位置を判定し、推奨戻り位置を表示し、それを奏者（ユーザ）に指定させることは可能である。その意味では、図１０実施例の合奏支援システム１０は演奏学習支援システムということもできる。
【０１２４】
図１７の実施例の合奏支援システム１０は、図１０実施例のシステムに比べて、さらに、動画カメラ（以下、単に「カメラ」という。）２６が付設された点が異なるだけで、他の部分は共通である。このカメラ２６はプリモ用インタフェース１２を操作するプリモ（または学習者）の手元映像を撮影するためのもので、インタフェース１２を操作するプリモ（図示せず）の手元の前方斜め４５度の位置からその手元の映像を撮影するように配置される。このようなカメラ２６の配置位置は、特に限定されるものではないが、この実施例では、プリモまたは学習者の手や指の位置と、プリモの指が打鍵したかどうかを同時に撮影するために、上述の配置位置を採用した。たとえば、プリモの手元の真上から撮影すると、その撮影映像から手指の位置は明瞭に判別できるが、打鍵したかどうかは明瞭には判別できない。他方、プリモの手元の真正面から撮影すると、撮影映像からインタフェース１２の鍵盤を打鍵したかどうかは明確に判別できるが、鍵盤に対する手指の位置は必ずしも明確には判別できない。そこで、真上と真正面との中間位置にカメラ２６を配置するこことした。
【０１２５】
なお、この実施例においては、楽譜および映像データベース２２ａには、ピアノを弾く手の実写映像（模範映像ないし手本映像）の映像データが、図５に示す楽譜データや図１１に示す連動テーブルとともに、格納されている。そして、図１１に示す連動テーブルを参照することによって、その模範映像または手本映像の再生および停止タイミングを制御することができる。たとえば、ポジション「２」に対応する手本映像を再生するためには、タイムコード「０００００００００１０１」から開始し、タイムコード「０００００００００２００」で停止すればよい。同様に、たとえば、ポジション「１０」に対応する手本映像を再生するためには、タイムコード「０００００００００９０１」から開始し、タイムコード「００００００００１０００」で停止すればよい。
【０１２６】
ただし、この手本映像は鍵盤およびそれを打鍵する教師の手指の実写映像であるが、この手本映像についても、手指の位置と打鍵のタイミングとの両方を学習者（プリモ）に明瞭に視認させることができるように、カメラ２６からの手元映像と同様に、斜め４５度前方から撮影した映像であることが望ましい。ただし、手本映像は真上から撮影したものを用い、その手本映像中の打鍵位置または打鍵タイミングは何らかの目印を付与することによって学習者に感知させるようにしてもよい。
【０１２７】
さらに、この実施例のタッチパネル表示器２４には、上下に２つの表示領域が設定されていて、上側の楽譜表示領域２４ａには楽譜および映像データベース２２ａから読み出した図５に示すような楽譜の全部または一部を表示し、下側の映像表示領域２４ｂには、楽譜および映像データベース２２ａから読み出した手本映像や、上記カメラ２６で撮影した手元映像を表示する。ただし、この図１７実施例では、タッチパネル機能のない表示器が用いられてもよい。
【０１２８】
上述のように、この実施例では楽譜の映像を表示器２４の上側領域２４ａには表示し、下側領域２４ｂに手本映像や手元映像を表示するようにした。しかしながら、これらの領域２４ａおよび２４ｂは表示器２４の横方向に並置されてもよい。ただし、発明者等の実験によれば、横方向並置の場合には被験者から視線移動が困難だったとの意見があったので、２つの領域２４ａおよび２４ｂは上下に並置することによって、余分な視線移動による学習者への負担を回避することにした。
【０１２９】
このように、表示器２４の映像表示領域２４ｂには手本映像または手元映像を表示するのであるが、学習者（プリモ）の視覚的な混乱を避けることができるように、実施例では、その手元映像と手本映像とを同じ縮尺でかつ同じ位置関係で表示するようにした。そのためには、楽譜および映像データベース２２ａに収録している手本映像を工夫したり、手元映像を撮影するカメラ２６のズーミングを工夫したりすればよい。
【０１３０】
図１７の実施例は、基本的には、図１０実施例と同様に、学習者がピアノを練習するときに使用できるシステムであるので、プリモが１人だけでも使用することができる。その意味では、図１７実施例の合奏支援システム１０も図１０実施例と同様に、演奏学習支援システムということもできる。
【０１３１】
そして、この実施例は、図１０実施例の戻り位置推奨機能とともに、プリモ（学習者）が楽曲を演奏しているとき、その演奏を停止すると、上記手本映像を表示器２４の映像表示領域２４ｂに表示する機能を有する。ただし、停止直前に音高誤りがあった場合には、その停止位置より手前のフレーズの手本映像を映し出し、音高誤りがなかった場合には、その停止位置より先のフレーズの手本映像を映し出す。
【０１３２】
したがって、この実施例においても、コンピュータ２０は図１２に示すフローチャートに従って推奨戻り位置検出動作を実行する。そして、この実施例においては、たとえばコンピュータ２０の内部メモリの適宜の領域に割り付けられている演奏停止判定用タイマ（図１２のタイマＴ）が一定時間、たとえば２秒〜５秒（デフォルトでは４秒に設定した）学習者による打鍵がなかった場合、図１８のフローチャートで示すイベントを処理する。
【０１３３】
ただし、図１７においてインタフェース１２からＭＩＤＩデータがタイマＴでカウントする一定時間の間入力されなかったとき、演奏停止として検出するようにしてもよい。
【０１３４】
ただし、一定時間打鍵がなかったということは、カメラ２６からの手元映像をサンプリングし、そのサンプリングデータをコンピュータ２０で処理することによって、検出または判定することができる。たとえば、鍵盤の１つのキーを打鍵したとき、その打鍵したキーは押し下げられる。この押し下げによって、それに隣り合うキーとの間に押し下げに伴う陰影が形成されるので、コンピュータ２０は一定時間どのキーに関連してもそのような陰影を検出しなかったとき、学習者が演奏を停止したと判断することができる。
【０１３５】
コンピュータ２０は、学習者の演奏の停止を検出したとき、図１８の最初のステップＳ１００１において、時刻ｔｊにおける演奏停止位置Ｓｋより手前側でありかつその停止位置Ｓｋに一番近いマーカＳｐ（推奨戻り位置）をＳｐａとしたとき、そのＳｐａから、停止位置Ｓｋまでの間に誤り位置Ｓｈがあったかどうか判断する。この誤り位置Ｓｈは、もし誤っていれば、たとえば図１２のステップＳ６０７で保存されているので、その誤り位置レジスタＳｈを参照することによって、ステップＳ１００１の判断を実行することができる。
【０１３６】
ステップＳ１００１で“ＹＥＳ”の判断をしたとき、コンピュータ２０は、続くステップＳ１００３において、楽譜および映像データベース２２ａから読み出して表示器２４の楽譜表示領域２４ａに表示している楽譜上の五線譜のマーカＳｐａ（図１９）の位置にマーク（演奏誤りがあったので、たとえば赤色マーク）を表示する。この赤色マークの画像データはコンピュータ２０内に、または楽譜および映像データベース２２ａ内に予め設定しておけばよい。
【０１３７】
そして、次のステップＳ１００５において、コンピュータ２０は、マーカＳｐａの位置から停止位置Ｓｋまでの手本映像を表示器２４の映像表示領域２４ｂに表示する。このとき、手本映像は楽譜および映像データベース２２ａから読み出すが、どの映像を再生するかは、図１１のような連動テーブルのポジション毎の映像開始時間および終了時間を参照することによって選択することができる。
【０１３８】
たとえば、マーカＳｐａから停止位置Ｓｋまでの手本映像を表示するとして、Ｓｐａがポジション１で、Ｓｋがポジション５の場合、図１１のテーブルによると、開始時間「００００００００００００」から終了時間「０００００００００５００」までの手本映像を再生することになる。
【０１３９】
なお、マーカＳｐａは図１９に示すように停止位置Ｓｋが含まれるフレーズ（小節）の先頭に付与されるので、結局、ステップＳ１００５で再生される手本映像は、演奏を停止した位置を含むフレーズの最初から停止した位置までの手本映像である。つまり、学習者が演奏を停止したとき直前に音高誤りがあった場合には、そのフレーズの最初に戻ってそのフレーズの手本映像を再生する。したがって、この場合の手本映像を「戻り手本」と呼ぶことができる。
【０１４０】
また、ステップＳ１００１で“ＮＯ”の判断をしたとき、コンピュータ２０は、続くステップＳ１００７において、図１９に示すように、停止位置Ｓｋより先でかつその停止位置Ｓｋに一番近いマーカＳｐ（推奨戻り位置）をＳｐｂとする。
【０１４１】
そして、次のステップＳ１００９において、コンピュータ２０は、楽譜および映像データベース２２ａから読み出して表示器２４の楽譜表示領域２４ａに表示している楽譜上の五線譜の、停止位置の次の位置Ｓｋ＋１にマークを付加的に表示する。ただし、この場合は、演奏誤りがあって停止したのではないので、このマークは、たとえば青色マークとする。誤り停止の場合には上述のように赤色マークを付与するので、それと異なる青色マークを表示することによって、学習者に、停止したときに誤りがあったのかどうかを容易に知らせる（感知させる）ことができる。
【０１４２】
その後、ステップＳ１０１１では、コンピュータ２０は、停止位置の次の位置Ｓｋ＋１からマーカＳｐｂ-１の位置までの手本映像を表示器２４の映像表示領域２４ｂに表示する。このとき、手本映像は楽譜および映像データベース２２ａから読み出すが、どの映像を再生するかは、上記と同様にして、図１１のような連動テーブルのポジション毎の映像開始時間および終了時間を参照することによって選択することができる。
【０１４３】
なお、マーカＳｐｂは図１９に示すように停止位置Ｓｋが含まれるフレーズ（小節）の次のフレーズの先頭に付与されるので、結局、ステップＳ１０１１で再生される手本映像は、演奏を停止した位置からそのフレーズの最後までの手本映像である。つまり、学習者が演奏を停止したとき直前に音高誤りがなかった場合には、その停止位置から先のフレーズの手本映像を再生する。したがって、この場合の手本映像を「先読み手本」と呼ぶことができる。
【０１４４】
この実施例のように、学習者が演奏を停止したときだけ、つまり支援が必要なときだけ手本映像を表示するようにしたので、学習者の読譜に対する意欲を減じることがない。たとえば、学習者に次の演奏位置を、鍵盤の各キーに設けた発光ダイオードを点灯することによって、逐一教えるような過保護な支援を行うと、学習者が楽譜上の音符を読む必要がないので、読譜の意欲が失われるが、演奏停止したときだけ支援するこの実施例によれば、学習者はできるだけ読譜によって次に演奏する位置を理解しようとすることが期待できる。
【０１４５】
また、複数の音符単位（時系列に連続する音符列）で読譜の訓練をすれば、個々の音符（次の演奏位置）ごとの読譜に比べて効果的な学習成果が得られる。後者の場合には、前後の音符との高低差と鍵盤の位置を捉える学習がされにくい。
【０１４６】
さらに、音楽的な表現力を習得するためにはフレーズ（文のようにまとまりのある音符列）をフレーズらしく演奏する必要があるため、初期段階からフレーズを意識させることは重要である。そこで、上述の実施例では手本映像をフレーズ単位で表示するようにして、学習者にフレーズを意識させるようにした。また、フレーズ単位で手本映像を表示することにより、１音単位での手本映像の表示と比較して、、学習者がリズムを分かりやすいという利点もある。
【０１４７】
その後、学習者（ユーザ）は上述の手本映像を参考にして演奏学習を続行する訳であるが、学習者が演奏を再開することによって開始されるイベントが図２０に示される。
【０１４８】
プリモ（学習者）が演奏を再開したとき、コンピュータ２０は、最初のステップＳ１１０１で間違い位置レジスタＳｈを初期化するとともに、次のステップＳ１１０３において、表示器２４に手本映像が表示されているかどうか判断する。手本映像が表示されていないときには、コンピュータ２０は何もしない（ステップＳ１００５）が、表示されている場合には、ステップＳ１１０７で、先のマーカＳｐａまたはＳｐｂの位置を記憶しておくためのレジスタ（マーカレジスタ：図示せず）をクリア（初期化）するとともに、次のステップＳ１１０９で手本映像に代えて、カメラ２６が撮影した手元映像を映像表示領域２４ｂに表示させる。したがって、プリモが演奏を継続する限り、装置のプリモの手元映像が表示される。
【０１４９】
さらに、上述の実施例では手本映像はたとえば学習者の前に設けた表示器２４の映像表示領域２４ｂに表示した。したがって、学習者は楽譜表示領域２４ａの楽譜と、映像表示領域２４ｂの手本映像と、自分の手元（インタフェース１２の鍵盤）とを見なければならない。上述のような２つの領域の縦配列によって学習者の視線移動を最小にする工夫はしているものの、それでも視線移動は学習者の負担である。そこで、手本映像を学習者の手元、すなわちインタフェース１２の鍵盤上に投影表示するようにすれば、学習者が見なければならないのは手元の鍵盤と楽譜との２箇所で済む。手本映像を鍵盤上に投影表示するためには、インタフェース1２の上方にプロジェクタ（フロントプロジェクタ）を設置し、そこからインタフェース1２の鍵盤上に投影するようにすればよい。ただし、その場合には、手本映像の手指の大きさや位置をインタフェース１２の鍵盤の大きさや位置に確実に適合させる必要があるので、プロジェクタの拡大率や位置を最適に設定するように調整するものとする。
【図面の簡単な説明】
【０１５０】
【図１】図１はこの発明の背景となる合奏支援システムを示す概略ブロック図である。
【図２】図２は楽譜の記述形式の一例を示す図解図である。
【図３】図３は楽譜の一例を示す図解図である。
【図４】図４は図３の楽譜を記述した記述形式を示す図解図である。
【図５】図５は図３の楽譜に従った楽譜データの一例を示す図解図である。
【図６】図６は図１実施例における演奏動作を全体的に示すフロー図である。
【図７】図７は、図６実施例における演奏位置判定処理の動作を示すフロー図である。
【図８】図８は、図６実施例における音高データ取得処理の動作を示すフロー図である。
【図９】図９は、図１実施例における音高データ差替え処理の動作を示すフロー図である。
【図１０】図１０はこの発明の一実施例の合奏支援システムを示す概略ブロック図である。
【図１１】図１１は図１０実施例における楽譜および映像データベースに格納される演奏ポジションと映像タイムコードとの関係を図解する図解図である。
【図１２】図１１は図１０実施例において演奏間違い位置を検出するための動作を示すフロー図である。
【図１３】図１３は図１０実施例においてマーク付電子楽譜を表示するための動作を示すフロー図である。
【図１４】図１４は図１３によってタッチパネル表示器に表示される電子楽譜の一例を示す図解図である。
【図１５】図１５は図１０実施例において弾き直し演奏位置を追跡するための動作を示すフロー図である。
【図１６】図１６は図１０実施例においてプリモが弾き直しをしないときの動作を示すフロー図である。
【図１７】図１７はこの発明の他の実施例の合奏支援システムを示す概略ブロック図である。
【図１８】図１８は図１７実施例において演奏間違い位置を検出したとき処理されるイベントを示すフロー図である。
【図１９】図１９は図１７実施例における停止位置およびマーカを図解する図解図である。
【図２０】図２０は図１７実施例において演奏を再開したときに処理されるイベントを示すフロー図である。
【符号の説明】
【０１５１】
１０  …合奏支援システム
１２  …プリモ用入力インタフェース
１４  …セコンド用入力インタフェース
１６  …ＭＩＤＩ音源
１８  …スピーカ
２０  …コンピュータ
２２  …楽譜データベース
２２ａ  …楽譜および映像データベース
２４  …タッチパネル表示器（表示器）
２４ａ  …楽譜表示領域
２４ｂ  …映像表示領域
２６  …カメラ
【図１】
0004743612.tif 000003
【図２】
0004743612.tif 000004
【図３】
0004743612.tif 000005
【図４】
0004743612.tif 000006
【図５】
0004743612.tif 000007
【図６】
0004743612.tif 000008
【図７】
0004743612.tif 000009
【図８】
0004743612.tif 000010
【図９】
0004743612.tif 000011
【図１０】
0004743612.tif 000012
【図１１】
0004743612.tif 000013
【図１２】
0004743612.tif 000014
【図１３】
0004743612.tif 000015
【図１４】
0004743612.tif 000016
【図１５】
0004743612.tif 000017
【図１６】
0004743612.tif 000018
【図１７】
0004743612.tif 000019
【図１８】
0004743612.tif 000020
【図１９】
0004743612.tif 000021
【図２０】
0004743612.tif 000022