<第1実施形態>
図1は、本開示の第1実施形態に係るコード処理装置100の構成を例示するブロック図である。コード処理装置100は、楽曲のコードを利用者に提供するコンピュータシステムである。コードは、複数の音で構成される和音である。コード処理装置100は、表示装置11(提示装置の一例)と操作装置12と制御装置13と記憶装置14とを具備する。コード処理装置100は、例えば携帯電話機もしくはスマートフォン等の可搬型の情報端末、またはパーソナルコンピュータ等の可搬型または据置型の情報端末である。
表示装置11(例えば液晶表示パネル)は、制御装置13による制御のもとで各種の画像を表示する。具体的には、表示装置11は、楽曲のコードを表示する。操作装置12は、利用者からの指示を受付ける入力機器である。操作装置12は、例えば、利用者が操作可能な複数の操作子、または、表示装置11の表示面に対する接触を検知するタッチパネルである。
制御装置13は、例えばコード処理装置100の各要素を制御する単数または複数のプロセッサである。例えば、制御装置13は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)、FPGA(Field Programmable Gate Array)、またはASIC(Application Specific Integrated Circuit)等の1種類以上のプロセッサにより構成される。図2は、制御装置13の機能的な構成を例示するブロック図である。制御装置13は、記憶装置14に記憶されたプログラムに従って複数のタスクを実行することで、コードを利用者に提供するための複数の機能(解析部31,処理部32,算出部33および表示制御部34)を実現する。なお、複数の装置の集合(すなわちシステム)で制御装置13の機能を実現してもよいし、制御装置13の機能の一部または全部を専用の電子回路で実現してもよい。
図1の記憶装置14は、例えば磁気記録媒体または半導体記録媒体等の公知の記録媒体で構成された単数または複数のメモリである。記憶装置14は、制御装置13が実行するプログラムと制御装置13が使用する各種のデータとを記憶する。なお、記憶装置14は、複数種の記録媒体の組合せにより構成されてもよい。また、記憶装置14は、コード処理装置100に対して着脱可能な可搬型の記録媒体、またはコード処理装置100が通信網を介して通信可能な外部記録媒体(例えばオンラインストレージ)としてもよい。
具体的には、記憶装置14は、楽曲の演奏内容を表すデータ(以下「楽曲データ」という)Qを記憶する。図3は、楽曲データQの模式図である。楽曲データQは、楽曲のコード列Yaと、当該楽曲の調情報Hとを含む。コード列Yaは、楽曲における複数の第1コードX1が時系列に配列されたデータである。調情報Hは、楽曲の調を表す情報である。楽曲内でひとつの調が連続する区間(以下「連続区間」)T毎に、当該調を表す調情報Hが対応付けられる。なお、楽曲内において調は変化するから、楽曲データQは複数の連続区間T(T1,T2,…)にそれぞれ対応する複数の調情報Hを含む。図3では、楽曲データQが、連続区間T1における調「Cメジャー」を表す調情報Hと、連続区間T2における調「Fメジャー」を表す調情報Hとを含む場合を例示する。複数の主音(具体的には平均律の12半音)と調名(長調および短調)との組合せに相当する24種類の調が存在する。ただし、調の種類数は、24種類に限定されない。楽曲データQは、事前に記憶装置14に記憶される。ただし、コード処理装置100が、例えば楽曲の演奏音または歌唱音を表す音響信号から楽曲データQを推定してもよい。
ここで、コード列Yaをそのまま利用者に提示することも可能である。しかし、利用者が所望しない第1コードX1がコード列Yaに含まれる場合もある。例えば、演奏技術の不足等の理由から利用者にとって演奏が困難な第1コードX1がコード列Yaに含まれ得る。以上の場面では、当該第1コードX1に代わる他のコード(典型的には演奏が容易なコード)を演奏したいという要望がある。以上の事情を考慮して、コード列Yaを構成する複数の第1コードX1のうち、特定のコード(以下「対象コード」という)を、当該第1コードX1に関連する第2コードX2に変換する。
対象コードは、利用者が第2コードX2への変換を所望するコードである。具体的には、対象コードは、演奏が困難なコードであり、事前に利用者により指定される。対象コードは、利用者が弦楽器を演奏する際に1本の指で複数の弦を同時に押弦するコードであり、例えば、バレー(セーハ)を含む操作により演奏されるバレーコードである。第1実施形態では、5本または6本の弦を1本の指で押弦するバレーコード(例えばコード「F」または「F7」)が、第2コードX2に変換される対象になる対象コードである。
記憶装置14は、対象コードを指定する指定データを記憶する。図4は、指定データの模式図である。指定データは、利用者により指定された対象コードを含む。複数の対象コードが利用者により指定され得る。利用者は、操作装置12に対する操作により対象コードを指定する。複数のバレーコードのうち対象コードとして指定するバレーコードの個数は任意である。
第2コードX2は、典型的には第1コードX1に音楽的に類似するコードである。第2コードX2は、例えば対象コードよりも演奏が容易なコードである。具体的には、第2コードX2は、対象コード以外のコード(すなわちバレーによる操作をせずに演奏できるコード)である。
記憶装置14は、第2コードX2を指定する変換データを記憶する。図5は、変換データの模式図である。変換データは、複数の第2コードX2を含む。すなわち、変換データは、第1コードX1に対する変換の候補となる第2コードX2が登録されたデータである。
図2の解析部31は、コード列Yaを構成する複数の第1コードX1の各々について、当該第1コードX1が対象コードに該当するか否かを判定する。具体的には、解析部31は、指定データに登録された複数の対象コードのうち第1コードX1に一致する対象コードがある場合には、当該第1コードX1が対象コードに該当すると判定し、指定データに一致する対象コードがない場合には、当該第1コードX1が対象コードに該当しないと判定する。図3では、斜線が付されたブロックが、対象コードに該当すると判定された第1コードX1である。コード列Yaにおける複数の第1コードX1のうち、第1コードX1「F」および第1コードX1「Cm/Eb」が対象コードに該当すると判定された場合が例示されている。以下の説明では、対象コードに該当すると判定された第1コードX1を「選択コードXk」という。
ここで、コード列Yaにおける全ての選択コードXkを第2コードX2に変換する構成(以下「対比例」という)を想定する。対比例では、選択コードXkが第2コードX2に変換される前のコード列Yaと変換後のコード列Zaとの間において音楽的な印象が維持されないという問題がある。具体的には、楽曲の調性を維持する上で重要な選択コードXkが第2コードX2に変換される場合に音楽的な印象が維持されなくなる。調性を維持する上で重要なコードは、例えば調の主音に対して所定の音程関係にある音を根音とするコードである。例えば調の主音に対して1度の関係にある音(すなわち主音に一致する音)を根音とするトニックコード、または、調の主音に対して5度の関係にある音を根音とするドミナントコードが、調性を維持する上で重要なコードに該当する。また、選択コードXkが音楽的に類似しない第2コードX2に変換される場合にも音楽的な印象が維持されなくなる。以上の事情を考慮して、図2の処理部32は、所定の条件を充足するときに、選択コードXkを第2コードX2に変換し、当該条件を充足しないときには選択コードXkを変換しない。所定の条件は、第1条件と第2条件とを含む。
第1条件は、選択コードXkが、調性を維持するために重要なコードでないことである。具体的には、第1条件は、選択コードXkが調のトニックコードまたはドミナントコードでないことである。処理部32は、例えば、選択コードXkが含まれる連続区間Tの調情報Hから、当該調情報Hが表す調のトニックコードおよびドミナントコードを特定する。そして、処理部32は、選択コードXkが当該トニックコードまたは当該ドミナントコードに一致する場合には、第1条件を充足しないと判定し、選択コードXkが当該トニックコードまたは当該ドミナントコードに一致しない場合には、第1条件を充足すると判定する。なお、複数の調の各々におけるトニックコードとドミナントコードとを、事前に記憶装置14に記憶しておいてもよい。
他方、第2条件は、選択コードXkと第2コードX2との間における類似度に応じた条件である。具体的には、第2条件は、図5の変換データにおける複数の第2コードX2のうち、選択コードXkとの類似度が最大となる第2コードX2(すなわち選択コードXkに最も類似している第2コードX2)について、当該類似度が閾値を上回ることである。処理部32は、複数の第2コードX2のうち類似度が最大になる第2コードX2を選択し、当該第2コードX2の類似度が閾値を上回るか否かを判定する。処理部32は、選択コードXkとの類似度が最大となる第2コードX2について当該類似度が閾値を下回る場合には、第2条件を充足しないと判定し、当該第2コードX2について当該類似度が閾値を上回る場合には、第2条件を充足すると判定する。
第2コードX2と選択コードXkとの間における類似度は、図2の算出部33により算出される。類似度は、第2コードX2を表すベクトルと選択コードXkを表すベクトルとの距離または相関を表す指標である。なお、類似度は、選択コードXkと第2コードX2とが相互に類似するほど高くなる。第2コードX2または選択コードXkを表すベクトルは、例えば、文献「山口直彦、管村昇,"非調構成音を含む和音への対応を目的としたTPS(Tonal Pitch Space)の拡張-ジャズ音楽理論への適用を目指して-",情報処理学会研究報告,2011年2月11日」に記載されたベーシックスペース関数である。
処理部32は、第1条件および第2条件の双方を充足すると判定した場合に、選択コードXkを第2コードX2に変換する。具体的には、処理部32は、選択コードXkとの類似度が最大であり、かつ、当該類似度が閾値を上回る第2コードX2に、当該選択コードXkを変換する。なお、第1条件および第2条件のうち少なくとも一方を充足しない場合には、選択コードXkは第2コードX2に変換されずに、当該選択コードXk(すなわち第1コードX1)が維持される。処理部32は、コード列Yaの各選択データについて、第1条件および第2条件を充足する場合に、当該選択データを第2コードX2に変換することで、図3のコード列Zaを生成する。図3では、二重線のブロックで第2コードX2が図示されている。コード列Zaは、第1コードX1と第2コードX2とが混在するコードの時系列である。
図3では、コード列Yaにおける複数の選択コードXkのうち、連続区間T1における選択コードXk「F」が第2コードX2「FM7」に変換されたコード列Zaが図示されている。コード列Yaにおける連続区間T1の選択コードXk「F」は、当該連続区間T1の調「Cメジャー」のトニックコードまたはドミナントコードではなく、かつ、当該選択コードXkに最も類似する第2コードX2「FM7」との類似度が閾値を上回るから、当該第2コードX2「FM7」に変換される。他方、コード列Yaにおける連続区間T2の選択コードXk「F」は、当該連続区間T2の調「Fメジャー」のトニックコード「F」に一致するから(すなわち第1条件を充足しないから)、変換されない。コード列Yaにおける連続区間T2の選択コードXk「Cm/Eb」は、当該連続区間T2の調「Fメジャー」のトニックコードまたはドミナントコードに一致しないものの、当該選択コードXkに最も類似する第2コードX2との類似度が閾値を下回るから(すなわち第2条件を充足しないから)、変換されない。以下の説明では、処理部32が選択コードXkを第2コードX2に変換する処理を「変換処理」という。
表示制御部34は、コード列Zaを表示装置11に表示させる。すなわち、表示制御部34は、第1コードX1が第2コードX2に変換された場合は、当該第1コードX1に代えて第2コードX2を表示装置11に表示させ、第1コードX1が変換されない場合には、当該第1コードX1を表示装置11に表示させる。表示装置11は、表示制御部34による制御のもとでコード列Zaを表示する。すなわち、コード列Zaが利用者に提示される。コード列Zaの表示の態様は任意である。なお、表示制御部34は、コード列Yaおよびコード列Zaの双方を表示装置11に表示させてもよい。
図6は、コード処理装置100の制御装置13がコード列Yaからコード列Zaを特定する処理のフローチャートである。図6の処理は、例えば利用者からの指示を契機として開始される。解析部31は、コード列Yaにおける複数の第1コードX1から1つの第1コードX1を順次に選択する(Sa1)。例えば、コード列Yaの先頭から末尾にかけて順番に第1コードX1が選択される。解析部31は、ステップSa1で選択された第1コードX1が対象コードに該当するか否かを判定する(Sa2)。第1コードX1が対象コードに該当する場合(Sa2:YES)、処理部32は、当該第1コードX1(すなわち選択コードXk)が第1条件を充足するか否かを判定する(Sa3)。具体的には、選択コードXkがトニックコードまたはドミナントコードであるか否かが判定される。
第1条件を充足する場合(Sa3:YES)、算出部33は、複数の第2コードX2の各々について、当該第2コードX2と選択コードXkとの間における類似度を算出する(Sa4)。処理部32は、複数の第2コードX2のうち類似度が最大となる第2コードX2を選択し、当該第2コードX2が第2条件を充足するか否かを判定する(Sa5)。具体的には、当該第2コードX2の類似度が閾値を上回るか否かが判定される。第2条件を充足する場合(Sa5:YES)、処理部32は、類似度が最大となる第2コードX2に選択コードXkを変換する(Sa6)。
解析部31は、コード列Yaにおける全ての第1コードX1についてステップSa1からSa6の処理を実行したか否かを判定する(Sa7)。第1コードX1が対象コードでない場合(Sa2:NO)、解析部31は、ステップSa3-Sa6の処理は実行せずに、ステップSa7の処理を実行する。また、第1条件を充足しない場合(Sa3:NO)、および、第2条件を充足しない場合(Sa5:NO)には、解析部31は、選択コードXkを変換せずに、ステップSa7の処理を実行する。すなわち、選択コードXkが調性を維持する上で重要なコードである場合、および、複数の第2コードX2のうち選択コードXkに音楽的に類似する第2コードX2が存在しない場合の少なくとも一方に該当するときは、選択コードXkが第2コードX2に変換されずに維持される。全ての第1コードX1について処理を実行した場合(Sa7:YES)、表示制御部34は、コード列Zaを表示装置11に表示させる(Sa8)。他方、未処理の第1コードX1がある場合(Sa7:NO)、ステップSa1に戻る。以上の処理により、コード列Yaよりも選択コードXkの個数が減少したコード列Zaが生成される。なお、コード列Yaに含まれる全ての選択コードXkが第1条件および第2条件を充足しない場合には、コード列Zaのコードの配列はコード列Yaと同じである。すなわち、コード列Zaの選択コードXkの個数はコード列Yaと同等である。
なお、ステップSa5の処理は、ステップSa3の処理よりも先に実行してもよい。すなわち、第2条件を充足した場合に、選択コードXkが第1条件を充足するか否かが判定される。また、ステップSa5において、複数の第2コードX2のうち類似度が閾値を上回る第2コードX2が存在しない場合には、第2条件を充足しないと判定し、当該類似度が閾値を上回る第2コードX2が存在する場合には第2条件を充足すると判定してもよい。以上の構成において、複数の第2コードX2について類似度が閾値を上回る場合には、ステップSa6では、当該複数の第2コードX2のうち類似度が最大となる第2コードX2に、選択コードXkが変換される。
以上の説明から理解される通り、第1実施形態では、第1コードX1が対象コードに該当する場合において、所定の条件を充足するときに、第1コードX1が第2コードX2に変換され、当該条件を充足しないときには、第1コードX1が変換されずに維持される。したがって、対比例と比較して、音楽的な印象を維持しつつコードを変換することが可能である。
第1実施形態では、所定の条件に第1条件が含まれるから、調の主音に対して所定の音程関係にある音を根音とする第1コードX1については変換されない。すなわち、調性を維持する上で重要な第1コードX1は維持される。したがって、コード列Yaとコード列Zaとの間において音楽的な印象を維持することができる。また、所定の条件に第2条件が含まれるから、第2コードX2の類似度が閾値を下回る場合には、第1コードX1が変換されない。すなわち、第2コードX2が第1コードX1に音楽的に類似しない場合には第1コードX1が変換されずに維持される。したがって、コード列Yaとの間において音楽的な印象が維持されたコード列Zaを生成することができる。
利用者が弦楽器を演奏する際に1本の指で複数の弦を同時に押弦するコードを対象コードとする第1実施形態の構成によれば、当該コードに該当する第1コードX1を第2コードX2に変換することができる。また、第1実施形態では、第2コードX2が対象コード以外のコードであるから、例えば対象コードの演奏を利用者が避けたい場合に、当該対象コードに該当しない第2コードX2に第1コードX1を変換することができる。
第1実施形態では、第1コードX1が第2コードX2に変換された場合には当該第2コードX2が第1コードX1の代わりに利用者に提示され、第1コードX1が変換されない場合には当該第1コードX1が利用者に提示される。したがって、コード列Yaとの間において音楽的な印象が維持されたコード列Zaを利用者に提示することができる。
<第2実施形態>
本開示の第2実施形態を説明する。なお、以下に例示する各態様において機能が第1実施形態と同様である要素については、第1実施形態の説明で使用した符号を流用して各々の詳細な説明を適宜に省略する。
コード列Yaのうち対象コードに一致する第1コードX1(すなわち選択コードXk)を第2コードX2に変換したとしても利用者によっては演奏が困難な場合がある。以上の事情を考慮して、第2実施形態では、コード列Yaに代わる他のコード列を利用者に提供する。具体的には、コード列Yaを移調させたコード列(以下「移調コード列」という)Ybが利用者に提供される。
図7は、第2実施形態に係る制御装置13の機能的な構成を示すブロック図である。第2実施形態に係る制御装置13は、移調コード列Ybを利用者に提示するための複数の機能(解析部31,処理部32,選択部35および表示制御部34)を実現する。
処理部32は、コード列Yaの移調(以下「移調処理」という)を含む特定処理により、当該コード列Yaとは調が異なる移調コード列Ybを特定する。移調処理は、コード列Ya(基準コード列の例示)を任意の移調量δで移調することで、当該コード列Yaとは異なる複数の第1コードX1の時系列が配列された移調コード列Ybを特定する処理である。具体的には、移調処理は、コード列Yaを相異なる移調量δで移調した複数の移調コード列Ybを特定する。
図8は、移調処理により特定される複数の移調コード列Ybを示す模式図である。例えば、移調処理は、コード列Yaを基準(0)として、当該コード列Yaから半音単位で移調量δを変化させる。例えば、移調処理は、コード列Yaに対して高音側に1半音(+1)、2半音(+2)、…6半音(+6)の移調量δでそれぞれ移調した6個の移調コード列Ybと、コード列Yaに対して低音側に1半音(-1)、2半音(-2)、…5半音(-5)の移調量δでそれぞれ移調した5個の移調コード列Ybとを生成する。すなわち、コード列Yaからの移調量δが相異なる11個の移調コード列Ybが特定される。以下の説明では、コード列Yaと各移調コード列Ybとのそれぞれを「候補コード列Ys」という。すなわち、1個のコード列Yaと11個の移調コード列Ybとで12個の候補コード列Ysが構成される。
図7の解析部31は、複数の候補コード列Ysの各々について、当該候補コード列Ysに含まれる第1コードX1のうち対象コードに該当する第1コードX1の個数に応じた指標(以下「評価指標M」という)を算出する。対象コードは、第1実施形態と同様に、バレーコードである。図8に例示される通り、評価指標Mは、例えば候補コード列Ysにおける複数の第1コードX1のうち対象コードに該当する第1コードX1の個数である。すなわち、評価指標Mは、候補コード列Ys中の対象コードの個数が少ないほど小さい。一般的に、楽曲内におけるバレーコードの個数が少ないほど演奏が容易になる。すなわち、評価指標Mが小さいほど演奏が容易な候補コード列Ysである。以上の説明から理解される通り、評価指標Mは、候補コード列Ysの演奏の難易度を表す指標であるとも換言できる。具体的には、解析部31は、候補コード列Ysの複数の第1コードX1を順番に対象コードに該当するか否かを判定し、当該対象コードに該当すると判定した第1コードX1の個数を評価指標Mとして算定する。図8では、斜線が付されたブロックが、対象コードに該当する第1コードX1である。
図7の選択部35は、複数の候補コード列Ysのうち、評価指標Mに応じた1以上の候補コード列Ysを選択する。具体的には、選択部35は、複数の候補コード列Ysのうち評価指標Mが示す対象コードの個数が最小である候補コード列Ys(すなわち評価指標Mが最小である候補コード列Ys)を選択する。すなわち、複数の候補コード列Ysのうち演奏の難易度が最も低い候補コード列Ysが選択される。なお、複数の候補コード列Ysのうちコード列Yaの評価指標Mが最小である場合には、当該コード列Yaが選択される。
図7の表示制御部34は、選択部35により選択された候補コード列Ysを表示装置11に表示させる。したがって、複数の候補コード列Ysのうち演奏が容易な候補コード列Ysを利用者に提供することができる。なお、表示制御部34は、候補コード列Ysとともに、当該候補コード列Ysの移調量δを利用者に提供してもよい。また、表示制御部34は、複数の候補コード列Ysの全てを表示装置11に表示させてもよい。以上の構成では、利用者は、表示装置11により表示された複数の候補コード列Ysのうち任意の候補コード列Ysを演奏することができる。
図9は、コード処理装置100の制御装置13が候補コード列Ysを利用者に提供する処理のフローチャートである。図9の処理は、例えば利用者からの指示を契機として開始される。処理部32は、移調処理により、コード列Yaから複数の移調コード列Ybを特定する(Sb1)。解析部31は、コード列Yaと複数の移調コード列Ybとを含む複数の候補コード列Ysの各々について評価指標Mを算出する(Sb2)。選択部35は、複数の候補コード列Ysのうち評価指標Mが最小である候補コード列Ysを選択する(Sb3)。表示制御部34は、選択部35により選択された候補コード列Ysを表示装置11に表示させる(Sb4)。
第2実施形態では、複数の候補コード列Ysの各々について、当該候補コード列Ysに含まれる対象コードの個数に応じた評価指標Mに応じて、複数の候補コード列Ysから1以上の候補コード列Ysが選択される。したがって、コード列Yaに変換されるべき候補コード列Ysを利用者に提供することができる。第2実施形態では特に、コード列Yaを相異なる移調量δで移調した複数の移調コード列Ybを含む複数の候補コード列Ysから候補コード列Ysが選択されるから、多様な調の候補コード列Ysを利用者に提供することができる。
第2実施形態では、複数の候補コード列Ysのうち、評価指標Mが示す対象コードの個数が最小である候補コード列Ysが選択されるから、例えば利用者が対象コードを所望しない場合には、当該対象コードの個数が少ない候補コード列Ysを提示することができる。利用者が弦楽器を演奏する際に1本の指で複数の弦を同時に押弦するコードを対象コードとする第2実施形態の構成によれば、当該コードの個数に応じた評価指標Mに応じて、候補コードが選択される。したがって、例えば当該複数の弦を押弦するコードを利用者が所望しない場合には、候補コード列Ysに含まれる当該コードの個数が少ない候補コード列Ysを提示することができる。
<第3実施形態>
図10は、第3実施形態に係るコード処理装置100の機能的な構成を示すブロック図である。第3実施形態に係るコード処理装置100は、第1実施形態における変換処理と第2実施形態における移調処理とを実行する。具体的には、コード処理装置100は、第2実施形態で例示した各候補コード列Ys中の複数の第1コードX1のうち対象コードに該当する第1コードX1を第2コードX2に変換する。第1実施形態と同様に、所定の条件(第1条件および第2条件を)を充足する場合に、第1コードX1が第2コードX2に変換される。
第3実施形態に係る制御装置13は、解析部31、処理部32、算出部33、選択部35および表示制御部34として機能する。処理部32は、移調処理と変換処理とを含む特定処理を実行する。処理部32は、第2実施形態と同様に、コード列Yaに対して移調処理を実行することで、複数の移調コード列Ybを特定する。図11には、移調処理により特定された複数の移調コード列Ybが図示されている。第2実施形態と同様、1個のコード列Yaと11個の移調コード列Ybとで12個の候補コード列Ysが構成される。
解析部31は、複数の候補コード列Ysの各々について、第1実施形態と同様に、当該候補コード列Ysを構成する各第1コードX1が対象コードに該当するか否かを判定する。すなわち、解析部31による処理により、各候補コード列Ysについて、選択コードXk(対象コードであると判定された第1コードX1)が特定される。図11には、斜線のブロックで選択コードXkが図示されている。
処理部32は、各候補コード列Ysにおける選択コードXkを、第1実施形態と同様の変換処理により第2コードX2に変換することで、候補コード列Zsを特定する。図11には、変換処理後の候補コード列Zsが、変換処理前の候補コード列Ysの下に図示されている。具体的には、処理部32は、所定の条件(第1条件および第2条件)を充足する場合に選択コードXkを第2コードX2に変換し、当該条件を充足しない場合には選択コードXkを変換しない。すなわち、候補コード列Zsは、候補コード列Ysとは異なる複数のコード(第1コードX1および第2コードX2)の時系列が配列されたコード列である。
第1条件は、第1実施形態と同様に、選択コードXkが調のトニックコードまたはドミナントコードでないことである。第2条件は、第1実施形態と同様に、変換データにおける複数の第2コードX2のうち、選択コードXkとの類似度が最大となる第2コードX2について、当該類似度が閾値を上回ることである。類似度は、第1実施形態と同様に、算出部33により算出される。変換処理後の各候補コード列Zsは、第1コードX1と第2コードX2が混在するコード列である。図11には、二重線のブロックで第2コードX2が図示されている。候補コード列Zs中の選択コードXkの個数は、候補コード列Ys中の選択コードXkの個数を下回る。なお、候補コード列Ysに含まれる全ての選択コードXkが第1条件および第2条件を充足しない場合、候補コード列Ysと候補コード列Zsとの間においてコードの配列は変化しない。すなわち、選択コードXkの個数は変換処理の前後で変化しない。
図10の解析部31は、第2実施形態と同様に、変換処理後の複数の候補コード列Zsの各々について評価指標Mを算出する。具体的には、解析部31は、各候補コード列Zsについて、当該候補コード列Zsに含まれる選択コードXkの個数を評価指標Mとして算出する。選択部35は、第2実施形態と同様に、複数の候補コード列Zsのうち評価指標Mが示す対象コードの個数が最小である候補コード列Zsを選択する。表示制御部34は、選択部35が選択した候補コード列Zsを表示装置11に表示させる。
図12は、コード処理装置100の制御装置13が候補コード列Zsを利用者に提示する処理のフローチャートである。図12の処理は、例えば利用者からの指示を契機として開始される。処理部32は、移調処理により、コード列Yaから複数の移調コード列Ybを特定する(Sc1)。処理部32は、コード列Yaと複数の移調コード列Ybとを含む候補コード列Ysの各々について変換処理を実行することで、候補コード列Zsを特定する(Sc2)。すなわち、ステップSc1とステップSc2とを含む特定処理が実行される。解析部31は、複数の候補コード列Zsの各々について評価指標Mを算出する(Sc3)。選択部35は、複数の候補コード列Zsのうち、評価指標Mが示す対象コードの個数が最小である候補コード列Zsを選択する(Sc4)。表示制御部34は、選択部35により選択された候補コード列Zsを表示装置11に表示させる(Sc5)。
以上の説明から理解される通り、第3実施形態では、変換処理を実行した後の各候補コード列Zsについて評価指標Mを算出し、当該評価指標Mに応じて複数の候補コード列Zsから候補コード列Zsが選択される。したがって、変換処理前の候補コード列Ysを利用者に提示する第2実施形態と比較して、選択コードXkの個数が低減された候補コード列Zsを利用者に提供することができる。また、変換処理は所定の条件を充足する場合に実行されるから、変換処理の前後において音楽的な印象が維持された選択コードXkを利用者に提供することができる。なお、第3実施形態においては、所定の条件の成否とは無関係に選択コードXkを第2コードX2に変換してもよい。すなわち、所定の条件を充足しなくても、選択コードXkが第2コードX2に変換される。以上の構成では、全ての選択コードXkが第2コードX2に変換される。
<変形例>
以上に例示した各態様に付加される具体的な変形の態様を以下に例示する。以下の例示から任意に選択された2個以上の態様を、相互に矛盾しない範囲で適宜に併合してもよい。
(1)第1実施形態では、所定の条件が第1条件および第2条件の双方を含む構成を例示したが、所定の条件は以上の例示に限定されない。例えば所定の条件が第1条件および第2条件の何れか一方である構成、または、所定の条件が第1条件および第2条件とは異なる第3条件を含む構成も採用される。第3条件は、例えば選択コードXkが楽曲における特定の区間(例えばサビ)に位置するコードでないことである。また、所定の条件が第3条件のみを含んでもよい。なお、以上の変形例は第3実施形態にも適用される。
(2)前述の各形態において、対象コードは、利用者が弦楽器を演奏する際に1本の指で複数の弦を同時に押弦するコードに限定されない。対象コードは、演奏を避けたいコードが利用者により任意に指定される。例えば演奏が苦手なコードが対象コードとして指定される。例えば、コードを構成する構成音の個数が多いほど演奏が困難である利用者は、当該構成音の個数に応じて対象コードを指定してもよい。以上の構成では、例えば、構成音の個数が閾値を上回るコードが対象コードとして指定され、構成音の個数が閾値を下回るコードが第2コードX2として指定される。なお、対象コードが利用者により選択される必要は必ずしもない。例えば利用者による指定によらず、バレーコードが対象コードとして指定されてもよい。
(3)第1実施形態において、第2コードX2は、対象コード以外のコードに限定されない。例えば、利用者が指定したコードを第2コードX2としてもよい。例えば、利用者にとって演奏が容易であるコード、または、利用者が演奏を所望するコードが第2コードX2として指定される。なお、以上の変形例は第3実施形態にも適用される。
(4)第2実施形態では、移調処理により11個の移調コード列Ybを特定したが、特定処理により特定する移調コード列Ybの個数は任意である。すなわち、移調処理により1個の移調コード列Ybを特定する構成も採用される。また、半音毎に移調量δを相違させて複数の移調コード列Ybを特定したが、移調処理における移調量δは以上の例示に限定されない。例えば全音毎に移調量δを相違させて移調コード列Ybを特定してもよい。なお、以上の変形例は第3実施形態にも適用される。
(5)第2実施形態では、複数の候補コード列Ysにおいて評価指標Mが最小になる場合には、選択部35は、当該評価指標Mが最小になる全ての候補コード列Ysを選択してもよい。また、選択部35は、評価指標Mが最小になる複数の候補コード列Ysのうち任意の1個の候補コード列Ys(例えば移調量δが最小である候補コード列Ys)を選択してもよい。なお、以上の変形例は第3実施形態にも適用される。
(6)第2実施形態では、候補コード列Ysのうち対象コードに該当する第1コードX1の個数を評価指標Mとして例示したが、評価指標Mは以上の例示に限定されない。例えば、各選択コードXkの演奏の難易度に応じた重みで各選択コードXkの個数を重み付けした加重和を評価指標Mとして算定してもよい。なお、以上の変形例は第3実施形態にも適用される。
(7)第2実施形態では、評価指標Mが最小である候補コード列Ysが選択されたが、候補コード列Ysを選択する方法は以上の例示に限定されない。例えば、選択部35は、複数の候補コード列Ysのうちコード列Yaよりも評価指標Mが小さい全ての候補コード列Ysを選択してもよい。なお、以上の変形例は第3実施形態にも適用される。
(8)第2実施形態において、選択部35が選択した候補コード列Ysの移調量δに応じて、弦楽器に対するカポタストの取付位置を提示してもよい。なお、以上の変形例は第3実施形態にも適用される。
(9)前述の各形態では、表示装置11による表示により利用者にコード列を提示したが、利用者へのコード列の提示方法は以上の例示に限定されない。例えば、放音装置(例えばスピーカ)による音響の放音によりコード列を利用者に提示してもよい。表示装置11と放音装置との双方は提示装置として包括的に表現される。
(10)以上に例示したコード処理装置100の機能は、前述の通り、制御装置13を構成する単数または複数のプロセッサと記憶装置14に記憶されたプログラムとの協働により実現される。本開示に係るプログラムは、コンピュータが読取可能な記録媒体に格納された形態で提供されてコンピュータにインストールされ得る。記録媒体は、例えば非一過性(non-transitory)の記録媒体であり、CD-ROM等の光学式記録媒体(光ディスク)が好例であるが、半導体記録媒体または磁気記録媒体等の公知の任意の形式の記録媒体も包含される。なお、非一過性の記録媒体とは、一過性の伝搬信号(transitory, propagating signal)を除く任意の記録媒体を含み、揮発性の記録媒体も除外されない。また、配信装置が通信網を介してプログラムを配信する構成では、当該配信装置においてプログラムを記憶する記憶装置が、前述の非一過性の記録媒体に相当する。
(11)以上に例示した形態から、例えば以下の構成が把握される。
本開示のひとつの態様(態様A1)に係るコード処理方法は、複数の音で構成される第1コードが対象コードに該当するか否かを判定し、前記第1コードが前記対象コードに該当する場合において、所定の条件を充足するときに、前記第1コードを、当該第1コードに関連する第2コードに変換し、前記条件を充足しないときには、前記第1コードを変換しない。以上の態様によれば、第1コードが対象コードに該当する場合において、所定の条件を充足するときに、第1コードが当該第1コードに関連する第2コードに変換され、所定の条件を充足しないときには、第1コードが変換されずに維持される。したがって、所定の条件とは無関係に、全ての第1コードが第2コードに変換される構成と比較して、音楽的な印象を維持しつつコードを変換することが可能である。
態様A1の一例(態様A2)では、前記所定の条件は、前記対象コードに該当すると判定された前記第1コードが、調の主音に対して所定の音程関係にある音を根音とするコードでないことである。以上の態様によれば、調の主音に対して所定の音程関係にある音を根音とする第1コード(すなわち調性を保つ上で重要な第1コード)については変換されずに維持されるから、音楽的な印象を維持することができる。
態様A1または態様A2の一例(態様A3)では、前記所定の条件は、複数のコードのうち前記第1コードとの類似度が最大となる前記第2コードについて、当該類似度が閾値を上回ることである。第1コードに音楽的に類似しないコードを第2コードとして第1コードに変換すると、音楽的な印象が損なわれる場合がある。以上の態様によれば、複数のコードのうち第1コードとの類似度が最大となる第2コードについて、当該類似度が閾値を上回る場合に、第1コードが当該第2コードに変換される。すなわち、第2コードの類似度が閾値を下回る場合(すなわち第2コードが第1コードに音楽的に類似しないと推定される場合)には、第1コードは変換されずに維持される。したがって、音楽的な印象を維持することができる。
態様A1から態様A3の何れかの一例(態様A4)では、前記対象コードは、利用者が弦楽器を演奏する際に1本の指で複数の弦を同時に押弦するコードである。以上の態様によれば、1本の指で複数の弦を同時に押弦するコードが第1コードである場合に、当該第1コードを第2コードに変換することができる。
態様A1から態様A4の何れかの一例(態様A5)では、前記第2コードは、前記対象コード以外のコードである。以上の態様によれば、例えば対象コードの演奏を利用者が避けたい場合に、当該対象コードに該当しない第2コードに第1コードを変換することができる。
態様A1から態様A5の何れかの一例(態様A6)では、前記第1コードが前記第2コードに変換された場合は、前記第1コードに代えて前記第2コードを提示装置に提示させ、前記第1コードを変換しない場合には、当該第1コードを前記提示装置に提示させる。以上の態様によれば、第1コードが第2コードに変換された場合には当該第2コードが第1コードの代わりに利用者に提示され、第1コードが変換されない場合には当該第1コードが利用者に提示される。したがって、音響的な印象が維持されたコードを利用者に提示することができる。
本開示のひとつの態様(態様B1)に係るコード処理方法は、複数のコードが時系列に配列された基準コード列の移調を含む特定処理により、前記基準コード列とは異なる複数のコードが時系列に配列された移調コード列を特定し、前記基準コード列と前記移調コード列とを含む複数の候補コード列の各々について、当該候補コード列に含まれる対象コードの個数に応じた評価指標を算出し、前記複数の候補コード列のうち、前記評価指標に応じた1以上の候補コード列を選択する。以上の態様では、基準コード列と移調コード列とを含む複数の候補コード列の各々について、当該候補コード列に含まれる対象コードの個数に応じた評価指標に応じて、複数の候補コード列から1以上の候補コード列が選択されるから、基準コード列に変換されるべき候補コード列を利用者に提供することができる。
態様B1の一例(態様B2)では、前記特定処理では、前記基準コード列を相異なる移調量で移調した複数の移調コード列を特定し、前記複数の候補コード列には、前記複数の移調コード列が含まれる。以上の態様では、基準コード列を相異なる移調量で移調した複数の移調コード列を含む複数の候補コード列から候補コード列が選択されるから、多様な調の候補コード列を利用者に提供することができる。
態様B1または態様B2の一例(態様B3)では、前記候補コード列の選択では、前記複数の候補コード列のうち、前記評価指標が示す前記対象コードの個数が最小である候補コード列が選択される。以上の態様では、複数の候補コード列のうち、評価指標が示す対象コードの個数が最小である候補コード列が選択される。したがって、例えば利用者が対象コードを所望しない場合には、当該対象コードの個数が少ない候補コード列を提示することができる。
態様B1から態様B3の何れかの一例(態様B4)では、前記対象コードは、利用者が弦楽器を演奏する際に1本の指で複数の弦を同時に押弦するコードである。以上の態様によれば、1本の指で複数の弦を同時に押弦するコードに関する評価指標に応じて、候補コードが選択される。したがって、例えば利用者が当該複数の弦を同時に押弦するコードを所望しない場合には、候補コード列に含まれる当該コードの個数が少ない候補コード列を提示することができる。
態様B1から態様B4の何れかの一例(態様B5)では、前記特定処理は、所定の条件を充足するときに、前記各候補コード列における複数のコードのうち前記対象コードに該当するコードを、当該コードに関連する他のコードに変換し、前記条件を充足しないときには、前記対象コードを変換しない処理を含む。以上の態様によれば、各候補コード列について、当所定の条件を充足する場合に、当該候補コード列の複数のコードのうち対象コードに該当するコードが他のコードに変換される。したがって、候補コード列における対象コードに該当するコードを他のコードに変換しない構成と比較して、対象コードに該当するコードの個数が低減された候補コード列を利用者に提供することができる。また、所定の条件を充足しない場合には、対象コードに該当するコードは変換されないから、音楽的な印象が維持された選択コードを利用者に提供することができる。
態様B1から態様B5の何れかの一例(態様B6)では、前記選択された前記1以上の候補コード列を提示装置に提示させる。以上の態様によれば、選択された1以上の候補コード列が提示装置により利用者に提示される。
以上に例示した各態様のコード処理方法を実行するコード処理装置、または、以上に例示した各態様のコード処理方法をコンピュータに実行させるプログラムとしても、本開示のひとつの態様は実現される。