(57)【特許請求の範囲】
【請求項１】
曲を構成する各音を表す曲データを記憶する曲データ記憶手段と、
前記曲データ記憶手段に記憶される曲データに含まれる音高が極大となる位置にある音高である極大音と極小となる位置にある音高である極小音とを検出し、検出された極大音および極小音の内から所定音連続的に極大に向かって増加した極大音の１つ前の音と、所定音連続的に極小に向かって減少した極小音の１つ前の音とをそれぞれ曲の印象を特徴付けるハイライト音として抽出するハイライト音抽出手段と、
前記曲データ記憶手段に記憶される曲データの内、前記ハイライト音抽出手段により抽出されたハイライト音に対応する曲データの楽音要素を強調変更する曲データ変更手段と
を具備することを特徴とする曲データ編集装置。
【請求項２】
曲を構成する各音を表す曲データを記憶する曲データ記憶手段と、
前記曲データ記憶手段に記憶される曲データの中から音高が所定期間連続して極大に向かって増加した場合に極大の位置にある音の１つの前の音と、音高が所定期間連続して極小に向かって減少した場合に極小の位置にある音の１つの前の音とをそれぞれ曲の印象を特徴付けるハイライト音として抽出するハイライト音抽出手段と、
前記曲データ記憶手段に記憶される曲データの内、前記ハイライト音抽出手段により抽出されたハイライト音に対応する曲データの楽音要素を強調変更する曲データ変更手段と
を具備することを特徴とする曲データ編集装置。
【請求項３】
曲を構成する各音を表す曲データを記憶する曲データ記憶手段と、
前記曲データ記憶手段に記憶される曲データに含まれる音高が極大となる位置にある音高である極大音と極小となる位置にある音高である極小音とを検出し、検出された極大音および極小音の内から所定音連続的に極大に向かって増加した極大音の１つ前の音と、所定音連続的に極小に向かって減少した極小音の１つ前の音とをそれぞれ曲の印象を特徴付けるハイライト音として抽出するハイライト音抽出手段と、
前記曲データ記憶手段に記憶される曲データを再生する再生手段と、
前記再生手段により再生される曲データがハイライト音に対応する場合、その曲データの楽音要素を強調変更する曲データ変更手段と
を具備することを特徴とする曲データ編集装置。
【請求項４】
曲を構成する各音を表す曲データを記憶する曲データ記憶手段と、
前記曲データ記憶手段に記憶される曲データの中から音高が所定期間連続して極大に向かって増加した場合に極大の位置にある音の１つの前の音と、音高が所定期間連続して極小に向かって減少した場合に極小の位置にある音の１つの前の音とをそれぞれ曲の印象を特徴付けるハイライト音として抽出するハイライト音抽出手段と、
前記曲データ記憶手段に記憶される曲データを再生する再生手段と、
前記再生手段により再生される曲データがハイライト音に対応する場合、その曲データの楽音要素を強調変更する曲データ変更手段と
を具備することを特徴とする曲データ編集装置。
【請求項５】
曲を構成する各音を表すと共に、エクスクルーシブメッセージを備える曲データを記憶する曲データ記憶手段と、
前記曲データ記憶手段に記憶される曲データに含まれる音高が極大となる位置にある音高である極大音と極小となる位置にある音高である極小音とを検出し、検出された極大音および極小音の内から所定音連続的に極大に向かって増加した極大音の１つ前の音と、所定音連続的に極小に向かって減少した極小音の１つ前の音とをそれぞれ曲の印象を特徴付けるハイライト音として抽出するハイライト音抽出手段と、
前記曲データ記憶手段に記憶される曲データの内、前記ハイライト音抽出手段により抽出されたハイライト音に対応する曲データのエクスクルーシブメッセージとして曲データ再生時の周波数特性を高域強調させるフィルタ特性データを設定する曲データ変更手段と
を具備することを特徴とする曲データ編集装置。
【請求項６】
曲を構成する各音を表すと共に、エクスクルーシブメッセージを備える曲データを記憶する曲データ記憶手段と、
前記曲データ記憶手段に記憶される曲データの中から音高が所定期間連続して極大に向かって増加した場合に極大の位置にある音の１つの前の音と、音高が所定期間連続して極小に向かって減少した場合に極小の位置にある音の１つの前の音とをそれぞれ曲の印象を特徴付けるハイライト音として抽出するハイライト音抽出手段と、
前記曲データ記憶手段に記憶される曲データの内、前記ハイライト音抽出手段により抽出されたハイライト音に対応する曲データのエクスクルーシブメッセージとして曲データ再生時の周波数特性を高域強調させるフィルタ特性データを設定する曲データ変更手段と
を具備することを特徴とする曲データ編集装置。
【請求項７】
曲を構成する各音を表す曲データを記憶する曲データ記憶手段を有するコンピュータに、
前記曲データ記憶手段に記憶される曲データに含まれる音高が極大となる位置にある音高である極大音と極小となる位置にある音高である極小音とを検出し、検出された極大音および極小音の内から所定音連続的に極大に向かって増加した極大音の１つ前の音と、所定音連続的に極小に向かって減少した極小音の１つ前の音とをそれぞれ曲の印象を特徴付けるハイライト音として抽出するハイライト音抽出ステップと、
前記曲データ記憶手段に記憶される曲データの内、前記ハイライト音抽出ステップにより抽出されたハイライト音に対応する曲データの楽音要素を強調変更する曲データ変更ステップと
を実行させる曲データ編集プログラム。
【請求項８】
曲を構成する各音を表す曲データを記憶する曲データ記憶手段を有するコンピュータに、
前記曲データ記憶手段に記憶される曲データの中から音高が所定期間連続して極大に向かって増加した場合に極大の位置にある音の１つの前の音と、音高が所定期間連続して極小に向かって減少した場合に極小の位置にある音の１つの前の音とをそれぞれ曲の印象を特徴付けるハイライト音として抽出するハイライト音抽出ステップと、
前記曲データ記憶手段に記憶される曲データの内、前記ハイライト音抽出ステップにより抽出されたハイライト音に対応する曲データの楽音要素を強調変更する曲データ変更ステップと
を実行させる曲データ編集プログラム。
【請求項９】
曲を構成する各音を表す曲データを記憶する曲データ記憶手段を有するコンピュータに、
前記曲データ記憶手段に記憶される曲データに含まれる音高が極大となる位置にある音高である極大音と極小となる位置にある音高である極小音とを検出し、検出された極大音および極小音の内から所定音連続的に極大に向かって増加した極大音の１つ前の音と、所定音連続的に極小に向かって減少した極小音の１つ前の音とをそれぞれ曲の印象を特徴付けるハイライト音として抽出するハイライト音抽出ステップと、
前記曲データ記憶手段に記憶される曲データを再生する再生ステップと、
前記再生ステップにより再生される曲データがハイライト音に対応する場合、その曲データの楽音要素を強調変更する曲データ変更ステップと
を実行させる曲データ編集プログラム。
【請求項１０】
曲を構成する各音を表す曲データを記憶する曲データ記憶手段を有するコンピュータに、
前記曲データ記憶手段に記憶される曲データの中から音高が所定期間連続して極大に向かって増加した場合に極大の位置にある音の１つの前の音と、音高が所定期間連続して極小に向かって減少した場合に極小の位置にある音の１つの前の音とをそれぞれ曲の印象を特徴付けるハイライト音として抽出するハイライト音抽出ステップと、
前記曲データ記憶手段に記憶される曲データを再生する再生ステップと、
前記再生ステップにより再生される曲データがハイライト音に対応する場合、その曲データの楽音要素を強調変更する曲データ変更ステップと
を実行させる曲データ編集プログラム。
【請求項１１】
曲を構成する各音を表すと共に、エクスクルーシブメッセージを備える曲データを記憶する曲データ記憶手段を有するコンピュータに、
前記曲データ記憶手段に記憶される曲データに含まれる音高が極大となる位置にある音高である極大音と極小となる位置にある音高である極小音とを検出し、検出された極大音および極小音の内から所定音連続的に極大に向かって増加した極大音の１つ前の音と、所定音連続的に極小に向かって減少した極小音の１つ前の音とをそれぞれ曲の印象を特徴付けるハイライト音として抽出するハイライト音抽出ステップと、
前記曲データ記憶手段に記憶される曲データの内、前記ハイライト音抽出ステップにより抽出されたハイライト音に対応する曲データのエクスクルーシブメッセージとして曲データ再生時の周波数特性を高域強調させるフィルタ特性データを設定する曲データ変更ステップと
を実行させる曲データ編集プログラム。
【請求項１２】
曲を構成する各音を表すと共に、エクスクルーシブメッセージを備える曲データを記憶する曲データ記憶手段を有するコンピュータに、
前記曲データ記憶手段に記憶される曲データの中から音高が所定期間連続して極大に向かって増加した場合に極大の位置にある音の１つの前の音と、音高が所定期間連続して極小に向かって減少した場合に極小の位置にある音の１つの前の音とをそれぞれ曲の印象を特徴付けるハイライト音として抽出するハイライト音抽出ステップと、
前記曲データ記憶手段に記憶される曲データの内、前記ハイライト音抽出ステップにより抽出されたハイライト音に対応する曲データのエクスクルーシブメッセージとして曲データ再生時の周波数特性を高域強調させるフィルタ特性データを設定する曲データ変更ステップと
を実行させる曲データ編集プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばシーケンサに用いて好適な曲データ編集装置および曲データ編集プログラムに関する。
【背景技術】
【０００２】
演奏すべき各音の音高や発音タイミングから構成される曲データを再生する自動演奏装置では、曲データの内容を編集する曲データ編集装置を備えることが多い。例えば、特許文献１に開示の自動演奏装置では、演奏トラック単位およびイベント単位で非ドラム系／ドラム系の音色を識別する音色識別データを含む曲データを編集して、一つの演奏トラックにドラム音色と非ドラム音色とを混在可能にする曲データ編集装置を備える。
【０００３】
【特許文献１】特開２００２−１６９５４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、上記特許文献１に開示の技術は、一つの演奏トラックにドラム音色と非ドラム音色とを混在可能にするだけであり、演奏表現力を向上させることができない、という問題がある。
本発明は、このような事情に鑑みてなされたもので、演奏表現力を向上させることができる曲データ編集装置および曲データ編集プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００５】
上記目的を達成するため、請求項１に記載の曲データ編集装置は、曲を構成する各音を表す曲データを記憶する曲データ記憶手段と、前記曲データ記憶手段に記憶される曲データに含まれる音高が極大となる位置にある音高である極大音と極小となる位置にある音高である極小音とを検出し、検出された極大音および極小音の内から所定音連続的に極大に向かって増加した極大音の１つ前の音と、所定音連続的に極小に向かって減少した極小音の１つ前の音とをそれぞれ曲の印象を特徴付けるハイライト音として抽出するハイライト音抽出手段と、前記曲データ記憶手段に記憶される曲データの内、前記ハイライト音抽出手段により抽出されたハイライト音に対応する曲データの楽音要素を強調変更する曲データ変更手段とを具備することを特徴とする。
請求項２に記載の曲データ編集装置は、曲を構成する各音を表す曲データを記憶する曲データ記憶手段と、前記曲データ記憶手段に記憶される曲データの中から音高が所定期間連続して極大に向かって増加した場合に極大の位置にある音の１つの前の音と、音高が所定期間連続して極小に向かって減少した場合に極小の位置にある音の１つの前の音とをそれぞれ曲の印象を特徴付けるハイライト音として抽出するハイライト音抽出手段と、
前記曲データ記憶手段に記憶される曲データの内、前記ハイライト音抽出手段により抽出されたハイライト音に対応する曲データの楽音要素を強調変更する曲データ変更手段と
を具備することを特徴とする。
【０００６】
請求項３に記載の曲データ編集装置は、曲を構成する各音を表す曲データを記憶する曲データ記憶手段と、前記曲データ記憶手段に記憶される曲データに含まれる音高が極大となる位置にある音高である極大音と極小となる位置にある音高である極小音とを検出し、検出された極大音および極小音の内から所定音連続的に極大に向かって増加した極大音の１つ前の音と、所定音連続的に極小に向かって減少した極小音の１つ前の音とをそれぞれ曲の印象を特徴付けるハイライト音として抽出するハイライト音抽出手段と、前記曲データ記憶手段に記憶される曲データを再生する再生手段と、前記再生手段により再生される曲データがハイライト音に対応する場合、その曲データの楽音要素を強調変更する曲データ変更手段とを具備することを特徴とする。
請求項４に記載の曲データ編集装置は、曲を構成する各音を表す曲データを記憶する曲データ記憶手段と、前記曲データ記憶手段に記憶される曲データの中から音高が所定期間連続して極大に向かって増加した場合に極大の位置にある音の１つの前の音と、音高が所定期間連続して極小に向かって減少した場合に極小の位置にある音の１つの前の音とをそれぞれ曲の印象を特徴付けるハイライト音として抽出するハイライト音抽出手段と、前記曲データ記憶手段に記憶される曲データを再生する再生手段と、前記再生手段により再生される曲データがハイライト音に対応する場合、その曲データの楽音要素を強調変更する曲データ変更手段とを具備することを特徴とする。
【０００７】
請求項５に記載の曲データ編集装置は、曲を構成する各音を表すと共に、エクスクルーシブメッセージを備える曲データを記憶する曲データ記憶手段と、前記曲データ記憶手段に記憶される曲データに含まれる音高が極大となる位置にある音高である極大音と極小となる位置にある音高である極小音とを検出し、検出された極大音および極小音の内から所定音連続的に極大に向かって増加した極大音の１つ前の音と、所定音連続的に極小に向かって減少した極小音の１つ前の音とをそれぞれ曲の印象を特徴付けるハイライト音として抽出するハイライト音抽出手段と、前記曲データ記憶手段に記憶される曲データの内、前記ハイライト音抽出手段により抽出されたハイライト音に対応する曲データのエクスクルーシブメッセージとして曲データ再生時の周波数特性を高域強調させるフィルタ特性データを設定する曲データ変更手段とを具備することを特徴とする。
請求項６に記載の曲データ編集装置は、曲を構成する各音を表すと共に、エクスクルーシブメッセージを備える曲データを記憶する曲データ記憶手段と、前記曲データ記憶手段に記憶される曲データの中から音高が所定期間連続して極大に向かって増加した場合に極大の位置にある音の１つの前の音と、音高が所定期間連続して極小に向かって減少した場合に極小の位置にある音の１つの前の音とをそれぞれ曲の印象を特徴付けるハイライト音として抽出するハイライト音抽出手段と、前記曲データ記憶手段に記憶される曲データの内、前記ハイライト音抽出手段により抽出されたハイライト音に対応する曲データのエクスクルーシブメッセージとして曲データ再生時の周波数特性を高域強調させるフィルタ特性データを設定する曲データ変更手段とを具備することを特徴とする。
【０００８】
請求項７に記載の曲データ編集プログラムは、曲を構成する各音を表す曲データを記憶する曲データ記憶手段を有するコンピュータに、前記曲データ記憶手段に記憶される曲データに含まれる音高が極大となる位置にある音高である極大音と極小となる位置にある音高である極小音とを検出し、検出された極大音および極小音の内から所定音連続的に極大に向かって増加した極大音の１つ前の音と、所定音連続的に極小に向かって減少した極小音の１つ前の音とをそれぞれ曲の印象を特徴付けるハイライト音として抽出するハイライト音抽出ステップと、前記曲データ記憶手段に記憶される曲データの内、前記ハイライト音抽出ステップにより抽出されたハイライト音に対応する曲データの楽音要素を強調変更する曲データ変更ステップとを実行させることを特徴とする。
請求項８に記載の曲データ編集プログラムは、曲を構成する各音を表す曲データを記憶する曲データ記憶手段を有するコンピュータに、前記曲データ記憶手段に記憶される曲データの中から音高が所定期間連続して極大に向かって増加した場合に極大の位置にある音の１つの前の音と、音高が所定期間連続して極小に向かって減少した場合に極小の位置にある音の１つの前の音とをそれぞれ曲の印象を特徴付けるハイライト音として抽出するハイライト音抽出ステップと、前記曲データ記憶手段に記憶される曲データの内、前記ハイライト音抽出ステップにより抽出されたハイライト音に対応する曲データの楽音要素を強調変更する曲データ変更ステップとを実行させることを特徴とする。
【０００９】
請求項９に記載の曲データ編集プログラムは、曲を構成する各音を表す曲データを記憶する曲データ記憶手段を有するコンピュータに、前記曲データ記憶手段に記憶される曲データに含まれる音高が極大となる位置にある音高である極大音と極小となる位置にある音高である極小音とを検出し、検出された極大音および極小音の内から所定音連続的に極大に向かって増加した極大音の１つ前の音と、所定音連続的に極小に向かって減少した極小音の１つ前の音とをそれぞれ曲の印象を特徴付けるハイライト音として抽出するハイライト音抽出ステップと、前記曲データ記憶手段に記憶される曲データを再生する再生ステップと、前記再生ステップにより再生される曲データがハイライト音に対応する場合、その曲データの楽音要素を強調変更する曲データ変更ステップとを実行させることを特徴とする。
【００１０】
請求項１０に記載の曲データ編集プログラムは、曲を構成する各音を表す曲データを記憶する曲データ記憶手段を有するコンピュータに、前記曲データ記憶手段に記憶される曲データの中から音高が所定期間連続して極大に向かって増加した場合に極大の位置にある音の１つの前の音と、音高が所定期間連続して極小に向かって減少した場合に極小の位置にある音の１つの前の音とをそれぞれ曲の印象を特徴付けるハイライト音として抽出するハイライト音抽出ステップと、前記曲データ記憶手段に記憶される曲データを再生する再生ステップと、前記再生ステップにより再生される曲データがハイライト音に対応する場合、その曲データの楽音要素を強調変更する曲データ変更ステップとを実行させることを特徴とする。
【００１１】
請求項１１に記載の曲データ編集プログラムは、曲を構成する各音を表すと共に、エクスクルーシブメッセージを備える曲データを記憶する曲データ記憶手段を有するコンピュータに、前記曲データ記憶手段に記憶される曲データに含まれる音高が極大となる位置にある音高である極大音と極小となる位置にある音高である極小音とを検出し、検出された極大音および極小音の内から所定音連続的に極大に向かって増加した極大音の１つ前の音と、所定音連続的に極小に向かって減少した極小音の１つ前の音とをそれぞれ曲の印象を特徴付けるハイライト音として抽出するハイライト音抽出ステップと、前記曲データ記憶手段に記憶される曲データの内、前記ハイライト音抽出ステップにより抽出されたハイライト音に対応する曲データのエクスクルーシブメッセージとして曲データ再生時の周波数特性を高域強調させるフィルタ特性データを設定する曲データ変更ステップとを実行させることを特徴とする。
【００１２】
請求項１２に記載の曲データ編集プログラムは、曲を構成する各音を表すと共に、エクスクルーシブメッセージを備える曲データを記憶する曲データ記憶手段を有するコンピュータに、前記曲データ記憶手段に記憶される曲データの中から音高が所定期間連続して極大に向かって増加した場合に極大の位置にある音の１つの前の音と、音高が所定期間連続して極小に向かって減少した場合に極小の位置にある音の１つの前の音とをそれぞれ曲の印象を特徴付けるハイライト音として抽出するハイライト音抽出ステップと、前記曲データ記憶手段に記憶される曲データの内、前記ハイライト音抽出ステップにより抽出されたハイライト音に対応する曲データのエクスクルーシブメッセージとして曲データ再生時の周波数特性を高域強調させるフィルタ特性データを設定する曲データ変更ステップとを実行させることを特徴とする。
【発明の効果】
【００１３】
請求項１、２、７および８に記載の発明によれば、曲を構成する各音を表す曲データの中から曲の印象を特徴付けるハイライト音を抽出し、抽出されたハイライト音に対応する曲データの楽音要素を強調変更するので、曲の印象を特徴付けるハイライト音が強調されて演奏表現力を向上させることができる。
【００１４】
請求項３、４、９および１０に記載の発明によれば、曲を構成する各音を表す曲データの中から曲の印象を特徴付けるハイライト音を抽出しておき、曲データを再生する際に、その再生される曲データがハイライト音に対応する場合、当該曲データの楽音要素を強調変更するので、曲の印象を特徴付けるハイライト音が強調されて演奏表現力を向上させることができる
【００１７】
請求項５、６、１１および１２に記載の発明では、曲を構成する各音を表すと共に、エクスクルーシブメッセージを備える曲データを記憶しておき、記憶された曲データの中から曲の印象を特徴付けるハイライト音を抽出し、抽出されたハイライト音に対応する曲データのエクスクルーシブメッセージとして曲データ再生時の周波数特性を高域強調させるフィルタ特性データを設定するので、曲の印象を特徴付けるハイライト音が強調されて演奏表現力を向上させることができる。
【発明を実施するための最良の形態】
【００１８】
以下では、最初に発明の概要を説明した後、図面を参照して本発明の実施の形態について説明する。
【００１９】
Ａ．発明の概要  
本発明は、曲を構成する各音を表す曲データから曲のハイライト箇所を検出し、検出したハイライト箇所を強調するように、対応する曲データを自動的に編集する。ハイライト箇所とは、例えば曲中の所謂「サビ」と呼ばれる部分など、曲の印象を特徴付ける音を指す。ハイライト箇所の強調とは、本実施形態においては、後述するように、ハイライト箇所に対応する曲データのベロシティ（音量）レベルを増加（あるいは減少）させる処理操作を指す。そうした編集が施された曲データを自動演奏すれば、曲の印象を特徴付ける箇所が強調される為、演奏表現力の向上を図ることができるようになる。
【００２０】
Ｂ．第１実施形態
（１）構成
図１は、本発明の第１実施形態の構成を示すブロック図である。この図において、操作部１０は、電源スイッチの他、キー入力用のキーボードやマウス等の入力操作子を備え、入力操作に対応したイベントを発生する。このイベントはＣＰＵ１１に取り込まれる。ＣＰＵ１１は、ＲＯＭ１２に記憶される各種制御プログラムを実行し、操作部１０が発生するイベントに対応して装置各部を制御するものであり、その特徴的な処理動作については追って詳述する。ＲＯＭ１２は、ＣＰＵ１１にロードされる各種制御プログラムや各種画面データを記憶する。各種制御プログラムとは、後述するメインルーチン、編集処理、曲選択処理および実行処理を含む。各種画面データは、後述する初期画面ＳＧ、編集初期画面ＨＳＧ、実行画面ＪＧおよび終了画面ＥＧを表示部１６に画面表示させるデータである。
【００２１】
ＲＡＭ１３は、ＣＰＵ１１の処理に用いる各種レジスタ／フラグデータを一時記憶するワークエリアと、ＭＩＤＩインタフェース１７を介して外部から供給される曲データを保存するデータエリアとを備える。ここで、図２を参照してＲＡＭ１３のデータエリアに格納される曲データの構成について説明する。ＲＡＭ１３のデータエリアには、図２に示すように、複数の曲［０］〜曲［Ｎ］が格納される。１つの曲は、読み出しアドレスＡＤに対応した曲データ［ＡＤ］〜［ＡＤ＋ｎ］および曲終了を表すデータＥＮＤから形成される。１つの曲データ［ＡＤ］は、前イベントからの経過時間（相対時間）を表すデルタタイムΔＴ、ノートオンあるいはノートオフなどのイベント内容を識別するイベントＥＶ、発音（又は消音）する音高を指定するノートＮＯＴＥおよび音量を表すベロシティＶＥＬから構成される。
【００２２】
音源１４は、周知の波形メモリ読み出し方式で構成され、ＲＡＭ１３のデータエリアからＣＰＵ１０が順次読み出す曲データを、指定テンポに同期して再生して楽音信号を出力する。サウンドシステム１５は、音源１４から出力される楽音信号をＤ／Ａ変換した後に増幅してスピーカＳＰから発音する。表示部１６は、ＣＰＵ１１から供給される表示制御信号に応じて、装置の動作状態や操作部１０の入力操作に応じた各種画面（初期画面ＳＧ、編集初期画面ＨＳＧ、実行画面ＪＧおよび終了画面ＥＧ等）を表示する。ＭＩＤＩインタフェース１７は、ＣＰＵ１１の制御の下で、外部ＭＩＤＩ機器とＭＩＤＩ形式の曲データを授受する。ＭＩＤＩインタフェース１７を介して外部ＭＩＤＩ機器から供給される曲データは、ＲＡＭ１３のデータエリア（図２参照）に格納される。
【００２３】
（２）動作
次に、図３〜図１７を参照して第１実施形態の動作について説明する。以下では、先ず最初に全体動作としてメインルーチンの動作を説明した後、続いてメインルーチンからコールされる編集処理を形成する各種処理（曲選択処理、実行処理、和音検出処理、極大・極小検出処理、音高検出処理およびベロシティ変換処理）の動作を説明する。
【００２４】
＜メインルーチンの動作＞
上記構成による第１実施形態に電源が投入されると、ＣＰＵ１１は図３に図示するメインルーチンを実行してステップＳＡ１に処理を進め、ＲＡＭ１３に格納される各種レジスタ／フラグ類をリセットしたり、初期値セットするイニシャライズを行う。そして、イニシャライズが完了すると、ステップＳＡ２に進み、ＲＯＭ１２から読み出す画面データに基づき初期画面ＳＧを表示部１６に画面表示する。初期画面ＳＧとは、図４に図示する一例のように、再生アイコンＩＣ１および編集アイコンＩＣ２を備える画面である。
【００２５】
初期画面ＳＧにおいて、再生アイコンＩＣ１や編集アイコンＩＣ２を選択操作しなければ、ステップＳＡ３、ＳＡ５の各判断結果は「ＮＯ」になり、ステップＳＡ２に処理を戻し、初期画面表示状態が維持される。初期画面表示状態において、例えば操作部１０のマウスを用いて再生アイコンＩＣ１を選択操作すると、ステップＳＡ３の判断結果が「ＹＥＳ」になり、ステップＳＡ５に進む。ステップＳＡ５では、例えば後述の編集処理によってハイライト箇所を強調するように編集された曲データを自動演奏する再生処理を実行した後、ステップＳＡ２に処理を戻し、初期画面表示状態に復帰する。
【００２６】
一方、初期画面表示状態において、編集アイコンＩＣ２を選択操作すると、ステップＳＡ５の判断結果が「ＹＥＳ」になり、ステップＳＡ６に進む。ステップＳＡ６では、複数曲の内から編集対象として選曲した曲の曲データからハイライト箇所を検出し、そのハイライト箇所を強調させるように曲データを自動的に編集する編集処理を実行した後、ステップＳＡ２に処理を戻し、初期画面表示状態に復帰する。以後、パワーオフされるまで上述したステップＳＡ２〜ＳＡ６を繰り返す。
【００２７】
＜編集処理の動作＞
次に、図５〜図６を参照して編集処理の動作を説明する。上述したメインルーチンのステップＳＡ６（図３参照）を介して編集処理が実行されると、ＣＰＵ１１は図５に図示するステップＳＢ１に進み、ＲＯＭ１２から読み出す画面データに基づき編集初期画面ＨＳＧを表示部１６に画面表示する。編集初期画面ＨＳＧとは、図６（ａ）に図示する一例のように、曲選択アイコンＩＣ３および戻るアイコンＩＣ４を備える画面である。編集初期画面ＨＳＧが画面表示されている状態で戻るアイコンＩＣ４を選択操作すると、ステップＳＢ４の判断結果が「ＹＥＳ」になり、本処理を完了させてメインルーチンに処理を戻し、初期画面表示状態に復帰させる。
【００２８】
一方、編集初期画面ＨＳＧが画面表示されている状態で曲選択アイコンＩＣ４を選択操作すると、ステップＳＢ２の判断結果が「ＹＥＳ」になり、ステップＳＢ３を介して、複数曲の内から編集対象とする曲を選曲する曲選択処理（後述する）を実行する。曲選択処理により編集対象とする曲を選曲し終えると、ステップＳＢ５に進み、図６（ｂ）に図示する一例のように、実行アイコンＩＣ５および戻るアイコンＩＣ６を備える実行画面ＪＧを画面表示する。
【００２９】
実行画面ＪＧが画面表示されている状態で戻るアイコンＩＣ６を選択操作した場合には、ステップＳＢ７の判断結果が「ＹＥＳ」になり、ステップＳＢ１に処理を戻し、編集初期画面表示状態に復帰させる。これに対し、実行画面ＪＧが画面表示されている状態で実行アイコンＩＣ５を選択操作すると、ステップＳＢ６の判断結果が「ＹＥＳ」になり、ステップＳＢ８を介して実行処理を行う。実行処理では、後述するように、編集対象曲の曲データからハイライト箇所を検出し、検出したハイライト箇所を強調させるように曲データのベロシティＶＥＬを変更する。
【００３０】
そして、ステップＳＢ８の実行処理にて曲データを編集し終えると、ステップＳＢ９に進み、図６（ｃ）に図示する一例のように、戻るアイコンＩＣ７および終了アイコンＩＣ８を備える終了画面ＥＧを画面表示する。終了画面ＥＧが画面表示されている状態で戻るアイコンＩＣ７を選択操作した場合には、ステップＳＢ１０の判断結果が「ＹＥＳ」になり、ステップＳＢ１に処理を戻し、編集初期画面表示状態に復帰させる。これに対し、終了アイコンＩＣ８を選択操作すると、ステップＳＢ１１の判断結果が「ＹＥＳ」になり、本処理を完了させてメインルーチンに処理を戻し、初期画面表示状態に復帰させる。
【００３１】
＜曲選択処理の動作＞
次に、図７〜図８を参照して曲選択処理の動作を説明する。上述した編集処理のステップＳＢ３（図５参照）を介して本処理が実行されると、ＣＰＵ１は図７に図示するステップＳＣ１に進み、曲リスト画面ＬＧを作成して表示部１６に画面表示する。曲リスト画面ＬＧとは、図８に図示する一例のように、ＲＡＭ１３のデータエリアに格納される複数の曲［０］〜曲［Ｎ］の曲番号や曲名などを一覧表示する画面である。次いで、ステップＳＣ２では、この曲リスト画面ＬＧに一覧表示される曲の内から編集対象曲が選択されるまで待機する。そして、編集対象曲が選択されると、ステップＳＣ２の判断結果が「ＹＥＳ」になり、ステップＳＣ３に進み、選択された編集対象曲の曲番号をポインタｎにストアして本処理を終える。以後、ポインタｎの値を曲番号ｎと記す。
【００３２】
＜実行処理の動作＞
次に、図９を参照して実行処理の動作を説明する。前述した編集処理のステップＳＢ８（図５参照）を介して本処理が実行されると、ＣＰＵ１は図９に図示するステップＳＤ１に進み、編集対象として選曲された曲番号ｎの曲データの内からノートオンイベントを有する曲データのアドレスＡＤ（読み出しアドレス）、経過時間ＴおよびノートＮＯＴＥを抽出し、それらを和音と非和音とに区別して保持する和音検出処理を実行する。和音検出処理の詳細については追って述べる。
【００３３】
次いで、ステップＳＤ２では、曲データ中で隣接するノートオンイベント同士のノートＮＯＴＥから音高変化の傾きを表す差分値を算出し、その差分値により極小となる位置に対応するノートオンイベントが記憶された極小値アドレスおよびそれに対応する差分値である極小差分値と、極大となる位置に対応するノートオンイベントが記憶された極大値アドレスおよびそれに対応する差分値である極大差分値とを検出する極大・極小検出処理を実行する。極大・極小検出処理の詳細については追って述べる。
【００３４】
続いて、ステップＳＤ３では、上記ステップＳＤ２の極大・極小検出処理にて検出された極大値アドレスで指定される極大音の内、前５音が連続して増加した極大音の１つ前の音を「極大側ハイライト音」として指定するハイライトアドレスＶＥＬＡＤ［ａ］と、極小値アドレスで指定される極小音の内、前５音が連続して減少した極小音の１つ前の音を「極小側ハイライト音」として指定するハイライトアドレスＶＥＬＡＤ［ａ］とを決定する音高検出処理を実行する。音高検出処理の詳細については追って述べる。
【００３５】
そして、ステップＳＤ４では、上記ステップＳＤ３の音高検出処理において検出されたハイライト音の読み出しアドレス（ハイライトアドレスＶＥＬＡＤ［ａ］）で指定される曲データ中のベロシティＶＥＬを増加させてハイライト音を強調させる一方、ハイライト音が和音を構成していれば、ハイライト音以外の他の和音構成音のベロシティＶＥＬを減少させ、和音中のハイライト音を強調させるベロシティ変換処理を行った後、本処理を完了させる。ベロシティ変換処理の詳細については追って述べる。
【００３６】
＜和音検出処理の動作＞
次に、図１０〜図１２を参照して和音検出処理の動作を説明する。前述した実行処理のステップＳＤ１（図９参照）を介して実行される和音検出処理は、図１０に図示するように、ステップＳＥ１を介して実行されるノートオン検出処理と、ステップＳＥ２を介して実行される重ね合わせ検出処理とから構成される。以下、ノートオン検出処理および重ね合わせ検出処理の各動作について述べる。
【００３７】
＜ノートオン検出処理の動作＞
図１０のステップＳＥ１を介してノートオン検出処理が実行されると、ＣＰＵ１１は図１１に図示するステップＳＦ１に進み、曲開始時点からの経過時間を計時するレジスタＴおよびポインタａをゼロリセットする。続いて、ステップＳＦ２では、曲番号ｎの曲データの先頭アドレスをレジスタＡＤにストアする。次いで、ステップＳＦ３では、レジスタＡＤで指定される曲データ［ＡＤ］をＲＡＭ１３のデータエリアから読み出す。続いて、ステップＳＦ４では、読み出した曲データ［ＡＤ］中のデルタタイムΔＴをレジスタＴに加算して曲開始時点からの経過時間（絶対時間）を算出する。以後、レジスタＴの値を経過時間Ｔと記す。そして、ステップＳＦ５では、読み出した曲データ［ＡＤ］中のイベントＥＶが「ノートオンイベント」であるか否かを判断する。
【００３８】
曲データ［ＡＤ］中のイベントＥＶが「ノートオフイベント」であると、判断結果は「ＮＯ」になり、ステップＳＦ９に進む。ステップＳＦ９〜ＳＦ１０では、ポインタａおよびレジスタＡＤを歩進させる。そして、ステップＳＦ１１では、歩進されたレジスタＡＤの値が最終アドレスを超えたか否かを判断する。なお、ここで言う最終アドレスとは、曲終端を表すデータＥＮＤが読み出されるアドレスを指す。曲終端を表すデータＥＮＤが読み出されなければ、判断結果は「ＮＯ」になり、上記ステップＳＦ３に処理を戻す。
【００３９】
一方、曲データ［ＡＤ］中のイベントＥＶが「ノートオンイベント」であると、上記ステップＳＦ５の判断結果は「ＹＥＳ」となり、ステップＳＦ６に進む。ステップＳＦ６では、「ノートオンイベント」を有する曲データ［ＡＤ］のアドレスＡＤを、ポインタａにて指定されるアドレスレジスタＡＤ［ａ］にストアする。次に、ステップＳＦ７では、レジスタＴの値、すなわち「ノートオンイベント」を有する曲データ［ＡＤ］の経過時間Ｔを、ポインタａにより指定されるレジスタＴＩＭＥ［ａ］にストアする。次いで、ステップＳＦ８では、「ノートオンイベント」を有する曲データ［ＡＤ］のノートＮＯＴＥを、ポインタａにより指定されるレジスタＮＯＴＥ［ａ］にストアする。
【００４０】
こうして、「ノートオンイベント」を有する曲データ［ＡＤ］のアドレスＡＤ（読み出しアドレス）、経過時間ＴおよびノートＮＯＴＥを検出し終えると、上述したステップＳＦ９〜ＳＦ１１を実行する。以後、歩進されたレジスタＡＤが最終アドレスを超えるまで上述したステップＳＦ３〜ＳＦ１１を繰り返し、「ノートオンイベント」を有する曲データ［ＡＤ］を検出する毎に、そのアドレスＡＤ（読み出しアドレス）、経過時間ＴおよびノートＮＯＴＥを、それぞれアドレスレジスタＡＤ［ａ］、レジスタＴＩＭＥ［ａ］およびレジスタＮＯＴＥ［ａ］にストアする。そして、歩進されたレジスタＡＤの値が最終アドレスを超え、曲データ［ＡＤ］の読み出しが完了すると、ステップＳＦ１１の判断結果が「ＹＥＳ」になり、本処理を完了させる。
【００４１】
このように、ノートオン検出処理では、曲選択処理（図７参照）により編集対象として選曲された曲番号ｎの曲データ［ＡＤ］から「ノートオンイベント」を有する曲データ［ＡＤ］を検索し、該当する曲データ［ＡＤ］のアドレスＡＤ（読み出しアドレス）、経過時間ＴおよびノートＮＯＴＥを、それぞれアドレスレジスタＡＤ［ａ］、レジスタＴＩＭＥ［ａ］およびレジスタＮＯＴＥ［ａ］に保持する。
【００４２】
＜重ね合わせ検出処理の動作＞
図１０のステップＳＥ２を介して重ね合わせ検出処理が実行されると、ＣＰＵ１１は、図１２に図示するステップＳＧ１に進み、ポインタａ、ポインタｂおよびポインタｃをそれぞれゼロリセットする。次いで、ステップＳＧ２では、上述のノートオン検出処理にて検出されたアドレスレジスタＡＤ［ａ］の内容を、ポインタｂおよびポインタｃで指定される２次元アドレスレジスタＡＤ［ｂ］［ｃ］に格納し直す。同様に、ステップＳＧ３では、レジスタＮＯＴＥ［ａ］の内容を、ポインタｂおよびポインタｃで指定される２次元レジスタＮＯＴＥ［ｂ］［ｃ］に格納し直す。
【００４３】
次に、ステップＳＧ４では、ポインタｄに初期値「１」をセットし、続くステップＳＧ５では、ポインタａで指定されるレジスタＴＩＭＥ［ａ］に格納される経過時間Ｔと、ポインタａとポインタｄとの加算値ａ＋ｄで指定されるレジスタＴＩＭＥ［ａ＋ｄ］に格納される経過時間Ｔとが略一致するか否か、つまり隣接するノートオンイベント同士の経過時間Ｔが略一致する和音であるかどうかを判断する。以下、和音の場合と非和音の場合とに分けて動作説明を進める。
【００４４】
ａ．非和音の場合
非和音であると、上記ステップＳＧ５の判断結果が「ＮＯ」となり、ステップＳＧ６に進む。ステップＳＧ６〜ＳＧ７では、ポインタｃをゼロリセットすると共に、ポインタｂを歩進させる。次いで、ステップＳＧ８では、ポインタｂおよびポインタｃで指定される２次元アドレスレジスタＡＤ［ｂ］［ｃ］に、ポインタａとポインタｄとの加算値ａ＋ｄで指定されるアドレスレジスタＡＤ［ａ＋ｄ］の値をストアし、続くステップＳＧ９では、ポインタｂとポインタｃとで指定される２次元レジスタＮＯＴＥ［ｂ］［ｃ］に、ポインタａとポインタｄとの加算値ａ＋ｄで指定されるレジスタＮＯＴＥ［ａ＋ｄ］の値をストアする。
【００４５】
そして、ステップＳＧ１０に進み、ポインタａを歩進させる。続いて、ステップＳＧ１１では、歩進されたポインタａがノートオンイベント総数を超えた否かを判断する。歩進されたポインタａがノートオンイベント総数を超えなければ、判断結果は「ＮＯ」になり、上述のステップＳＧ４に処理を戻す。これに対し、歩進されたポインタａがノートオンイベント総数を超えると、上記ステップＳＧ１１の判断結果が「ＹＥＳ」となり、本処理を終える。
【００４６】
ｂ．和音の場合
一方、隣接するノートオンイベント同士の経過時間Ｔが略一致する和音が検索されると、上記ステップＳＧ５の判断結果が「ＹＥＳ」になり、ステップＳＧ１２に進み、ポインタｃを歩進させる。次いで、ステップＳＧ１３では、ポインタｂとポインタｃとで指定される２次元アドレスレジスタＡＤ［ｂ］［ｃ］に、ポインタａとポインタｄとの加算値ａ＋ｄで指定されるアドレスレジスタＡＤ［ａ＋ｄ］の値をストアする。
【００４７】
続いて、ステップＳＧ１４では、ポインタｂとポインタｃとで指定される２次元レジスタＮＯＴＥ［ｂ］［ｃ］に、ポインタａとポインタｄとの加算値ａ＋ｄで指定されるレジスタＮＯＴＥ［ａ＋ｄ］の値をストアする。そして、ステップＳＧ１５では、ポインタｄを歩進させ、続くステップＳＧ１６では、ポインタａと歩進されたポインタｄとの加算値ａ＋ｄがノートオンイベント総数を超えた否かを判断する。ノートオンイベント総数を超えなければ、判断結果は「ＮＯ」になり、上述のステップＳＧ５に処理を戻すが、ノートオンイベント総数を超えると、判断結果が「ＹＥＳ」になり、本処理を終える。
【００４８】
以上のように、重ね合わせ検出処理では、前述のノートオン検出処理（図１１参照）にて検出されたレジスタＴＩＭＥ［ａ］の内容（経過時間Ｔ）に基づき、隣り合うノートオンイベント同士の経過時間Ｔが略一致する和音であるか否かを判断する。そして、非和音であれば、アドレスレジスタＡＤ［ａ］の内容を２次元アドレスレジスタＡＤ［ｂ］［０］に、レジスタＮＯＴＥ［ａ］の内容を２次元レジスタＮＯＴＥ［ｂ］［０］にストアし直し、一方、和音であると、アドレスレジスタＡＤ［ａ］の内容を２次元アドレスレジスタＡＤ［ｂ］［ｃ］に、レジスタＮＯＴＥ［ａ］の内容を２次元レジスタＮＯＴＥ［ｂ］［ｃ］にストアし直すようになっている。
【００４９】
したがって、例えばレジスタＴＩＭＥ［０］〜ＴＩＭＥ［２］にそれぞれ格納される経過時間Ｔが非和音のものであると、
ＡＤ［０］［０］←ＡＤ［０］、ＮＯＴＥ［０］［０］←ＮＯＴＥ［０］
ＡＤ［１］［０］←ＡＤ［１］、ＮＯＴＥ［１］［０］←ＮＯＴＥ［１］
ＡＤ［２］［０］←ＡＤ［２］、ＮＯＴＥ［２］［０］←ＮＯＴＥ［２］のようにストアし直す。
【００５０】
一方、例えばレジスタＴＩＭＥ［０］〜ＴＩＭＥ［２］にそれぞれ格納される経過時間Ｔが和音のものであると、
ＡＤ［０］［０］←ＡＤ［０］、ＮＯＴＥ［０］［０］←ＮＯＴＥ［０］
ＡＤ［０］［１］←ＡＤ［１］、ＮＯＴＥ［０］［１］←ＮＯＴＥ［１］
ＡＤ［０］［２］←ＡＤ［２］、ＮＯＴＥ［０］［２］←ＮＯＴＥ［２］のようにストアし直す。
【００５１】
＜極大・極小検出処理の動作＞
次に、図１３〜図１４を参照して極大・極小検出処理の動作を説明する。前述した実行処理のステップＳＤ２（図９参照）を介して本処理が実行されると、ＣＰＵ１１は、図１３に図示するステップＳＨ１に進み、ポインタａ、ポインタｂおよびポインタｃをそれぞれゼロリセットする。続いて、ステップＳＨ２〜ＳＨ７では、ポインタａを歩進させながら、そのポインタａが指定する２次元レジスタＮＯＴＥ［ａ＋１］［０］と２次元レジスタＮＯＴＥ［ａ］［０］との差、つまり隣り合うノートオンイベント同士のノートＮＯＴＥの差分を算出し、算出した差分が「＋（正）」の場合には「＋差分値」を、算出した差分が「０」の場合には「０」を、算出した差分が「−（負）」の場合には「−差分値」をそれぞれレジスタＤＩＦ［ａ］にストアする処理を、ポインタａに「１」を加算した値ａ＋１がノート総数（曲データの数）を超えるまで繰り返す。なお、ここで言う「＋差分値」とは音高変化の傾きが増加していることを表し、「−差分値」とは音高変化の傾きが減少していることを表す。
【００５２】
こうして、曲データ中のノートオンイベント毎の音高変化の傾きを表す差分値をレジスタＤＩＦ［ａ］にストアし終えると、上記ステップＳＨ２の判断結果が「ＮＯ」になり、ステップＳＨ８に進み、ポインタａをゼロリセットする。そして、ステップＳＨ９〜ＳＨ１２では、ポインタａに「１」を加算した値ａ＋１がデータ総数を超えるまで、ポインタａを歩進させながら、それに応じてレジスタＤＩＦ［ａ］の差分値を読み出す。読み出されたレジスタＤＩＦ［ａ］の差分値又はレジスタＤＩＦ［ａ＋１］の差分値のいずれかが「０」であると、ステップＳＨ１０、ＳＨ１１のいずれかの判断結果が「ＹＥＳ」になり、ステップＳＨ１２に進み、ポインタａを歩進させて上述のステップＳＨ９に処理を戻す。
【００５３】
これに対し、読み出されたレジスタＤＩＦ［ａ］およびレジスタＤＩＦ［ａ＋１］の各差分値が「０」以外であると、ステップＳＨ１０、ＳＨ１１の各判断結果が「ＮＯ」となり、図１４に図示するステップＳＨ１３に処理を進める。ステップＳＨ１３では、連続して読み出されたレジスタＤＩＦ［ａ］およびレジスタＤＩＦ［ａ＋１］の差分極性が同一でないかどうかを判断する。双方の差分極性が同一であると、判断結果が「ＮＯ」になり、ステップＳＨ１８に進み、ポインタａを歩進させて上述のステップＳＨ９（図１３参照）に処理を戻す。
【００５４】
一方、双方の差分極性が同一でない場合、すなわちレジスタＤＩＦ［ａ］の差分極性が「＋（増加）」、レジスタＤＩＦ［ａ＋１］の差分極性が「−（減少）」となる極大変化の場合あるいはレジスタＤＩＦ［ａ］の差分極性が「−（減少）」、レジスタＤＩＦ［ａ＋１］の差分極性が「＋（増加）」となる極小場合には、上記ステップＳＨ１３の判断結果が「ＮＯ」になり、ステップＳＨ１４に進む。ステップＳＨ１４では、レジスタＤＩＦ［ａ］の差分極性が「−（減少）」であるか否かを判断する。
【００５５】
レジスタＤＩＦ［ａ］の差分極性が「−（減少）」、レジスタＤＩＦ［ａ＋１］の差分極性が「＋（増加）」となる極小変化では、上記ステップＳＨ１４の判断結果が「ＹＥＳ」になり、ステップＳＨ１５に進む。ステップＳＨ１５では、ポインタａで指定される２次元アドレスレジスタＡＤ［ａ］［０］の値を、極小音を指定する極小値アドレスとしてレジスタＭＩＮＡＤ［ｂ］［０］にストアする。そして、ステップＳＨ１６では、レジスタＤＩＦ［ａ］を極小差分値としてレジスタＭＩＮＤＩＦ［ｂ］にストアする。この後、ステップＳＨ１７に進み、ポインタｂを歩進させ、ステップＳＨ１８では、ポインタａを歩進させて前述のステップＳＨ９（図１３参照）に処理を戻す。
【００５６】
これに対し、レジスタＤＩＦ［ａ］の差分極性が「＋（増加）」、レジスタＤＩＦ［ａ＋１］の差分極性が「−（減少）」となる極大変化では、上記ステップＳＨ１４の判断結果が「ＮＯ」になり、ステップＳＨ１９に進む。ステップＳＨ１９では、ポインタａで指定される２次元アドレスレジスタＡＤ［ａ］［０］の値を、極大音を指定する極大値アドレスとしてレジスタＭＡＸＡＤ［ｃ］［０］にストアする。次いで、ステップＳＨ２０では、レジスタＤＩＦ［ａ］を極大差分値としてレジスタＭＡＸＤＩＦ［ｃ］にストアする。この後、ステップＳＨ２１に進み、ポインタｃを歩進させ、続くステップＳＨ１８では、ポインタａを歩進させて前述のステップＳＨ９（図１３参照）に処理を戻す。
【００５７】
このように、極大・極小検出処理では、曲データ中で隣接するノートオンイベント同士のノートＮＯＴＥから音高変化の傾きを表す差分値を算出し、その差分値により極小となる位置に対応するノートオンイベントが記憶された極小値アドレスおよびそれに対応する差分値である極小差分値と、極大となる位置に対応するノートオンイベントが記憶された極大値アドレスおよびそれに対応する差分値である極大差分値とを検出するようになっている。
【００５８】
＜音高検出処理の動作＞
次に、図１５〜図１６を参照して音高検出処理の動作を説明する。前述した実行処理のステップＳＤ３（図９参照）を介して本処理が実行されると、ＣＰＵ１１は、図１５に図示するステップＳＪ１〜ＳＪ１１において極大側ハイライト音を検出した後、図１６に図示するステップＳＪ１２〜ＳＪ２２において極小側ハイライト音を検出する。
【００５９】
本実施形態では、極大値アドレス（ＭＡＸＡＤ［ａ］）で指定される極大音に至る前５音が連続して増加し、かつその極大音の１つ前の音（ＭＡＸＡＤ［ａ−１］）を「極大側ハイライト音」と定義し、極小値アドレス（ＭＩＮＡＤ［ａ］）で指定される極小音に至る前５音が連続して減少し、かつその極小音の１つ前の音（ＭＩＮＡＤ［ａ−１］）を「極小側ハイライト音」と定義している。以下では、ステップＳＪ１〜ＳＪ１１からなる極大側ハイライト音検出動作と、ステップＳＪ１２〜ＳＪ２２からなる極小側ハイライト音検出動作とに分けて説明する。
【００６０】
ａ．極大側ハイライト音検出動作（ステップＳＪ１〜ＳＪ１１の動作）
ステップＳＪ１では、ポインタａおよびポインタｂをそれぞれゼロリセットする。次いで、ステップＳＪ２では、歩進されたポインタａがデータ総数を超えたか否かを判断する。ポインタａがデータ総数を超えなければ、判断結果は「ＹＥＳ」になり、ステップＳＪ３に進む。一方、ポインタａがデータ総数を超えると、判断結果が「ＮＯ」になり、後述する極小側ハイライト音検出動作に移行する。
【００６１】
ステップＳＪ３では、前述の極大・極小検出処理にて検出したレジスタＭＡＸＤＩＦ［ａ］の値、すなわち極大差分値をポインタｂにセットし、続くステップＳＪ４では、音数ポインタｍに初期値「１」をセットする。そして、ステップＳＪ５では、ポインタｂから音数ポインタｍを減算した値ｂ−ｍで指定されるレジスタＤＩＦ［ｂ−ｍ］に格納される差分値の極性が「＋（増加）」であるか否かを判断する。レジスタＤＩＦ［ｂ−ｍ］に格納される差分値の極性が「−（減少）」になると、判断結果は「ＮＯ」になり、ステップＳＪ１１に進み、ポインタａを歩進させた後、上述のステップＳＪ２に処理を戻す。
【００６２】
一方、レジスタＤＩＦ［ｂ−ｍ］に格納される差分値の極性が「＋（増加）」であれば、上記ステップＳＪ５の判断結果は「ＹＥＳ」になり、ステップＳＪ６に進む。ステップＳＪ６では、音数ポインタｍの値が「５」、すなわち極大音（ＭＡＸＡＤ［ａ］）から前５音の差分極性が連続して増加したかどうかを判断する。前５音の差分極性が連続して増加していなければ、判断結果は「ＮＯ」になり、ステップＳＪ７に進み、音数ポインタｍを歩進させる。次いで、ステップＳＪ８では、ポインタｂから音数ポインタｍを減算した値ｂ−ｍが「０」であるか否かを判断する。値ｂ−ｍが「０」でなければ、判断結果は「ＮＯ」になり、上述のステップＳＪ５に処理を戻す。値ｂ−ｍが「０」になると、判断結果が「ＹＥＳ」となり、ステップＳＪ１１に進み、ポインタａを歩進させた後、上述のステップＳＪ２に処理を戻す。
【００６３】
このように、ステップＳＪ５〜ＳＪ８では、前５音の差分極性が連続して増加した極大音（ＭＡＸＡＤ［ａ］）を検索する。そして、該当する極大音（ＭＡＸＡＤ［ａ］）が検索されると、ステップＳＪ６の判断結果が「ＹＥＳ」になり、ステップＳＪ９に進み、レジスタＭＡＸＡＤ［ａ−１］［０］に格納される極大音の１つ前の音を指定するアドレスを、極大側ハイライト音を指定するアドレスとしてレジスタＶＥＬＡＤ［ｃ］にストアする。以後、レジスタＶＥＬＡＤ［ｃ］の値を、ハイライトアドレスＶＥＬＡＤ［ｃ］と称す。次いで、ステップＳＪ１０〜ＳＪ１１では、ポインタｃおよびポインタａをそれぞれ歩進させた後、上述のステップＳＪ２に処理を戻す。
【００６４】
ｂ．極小側ハイライト音検出動作（ステップＳＪ１２〜ＳＪ２２の動作）
上述した極大側ハイライト音検出動作を処理し終えると、ＣＰＵ１１は図１６に図示するステップＳＪ１２に進み、ポインタａおよびポインタｂをそれぞれゼロリセットする。次いで、ステップＳＪ１３では、歩進されたポインタａがデータ総数を超えたか否かを判断し、ポインタａがデータ総数を超えなければ、判断結果は「ＹＥＳ」になり、ステップＳＪ３に進み、ポインタａがデータ総数を超えると、判断結果が「ＮＯ」になり、本処理を完了させる。
【００６５】
ステップＳＪ１４では、前述の極大・極小検出処理にて検出した極小差分値（ＭＩＮＤＩＦ［ａ］）をポインタｂにセットし、続くステップＳＪ１５では、音数ポインタｍに初期値「１」をセットする。そして、ステップＳＪ１６〜ＳＪ１９では、前５音の差分極性が連続して減少した極小音（ＭＩＮＡＤ［ａ］）を検索する。そして、該当する極小音（ＭＩＮＡＤ［ａ］）が検索されると、ステップＳＪ１７の判断結果が「ＹＥＳ」になり、ステップＳＪ２０に進み、レジスタＭＩＮＡＤ［ａ−１］［０］に格納される極小音の１つ前の音を指定するアドレスを、極小側ハイライト音を指定するアドレスとしてレジスタＶＥＬＡＤ［ｃ］にストアする。次いで、ステップＳＪ２１〜ＳＪ２２では、ポインタｃおよびポインタａをそれぞれ歩進させた後、上述のステップＳＪ１３に処理を戻す。
【００６６】
このように、音高検出処理では、極大・極小検出処理にて検出された極大値アドレスで指定される極大音の内、前５音が連続して増加した極大音の１つ前の音を「極大側ハイライト音」として指定するハイライトアドレスＶＥＬＡＤ［ｃ］と、極大・極小検出処理にて検出された極小値アドレスで指定される極小音の内、前５音が連続して減少した極小音の１つ前の音を「極小側ハイライト音」として指定するハイライトアドレスＶＥＬＡＤ［ｃ］とを発生する。
【００６７】
＜ベロシティ変換処理＞
次に、図１７を参照してベロシティ変換処理の動作を説明する。前述した実行処理のステップＳＤ４（図９参照）を介して本処理が実行されると、ＣＰＵ１１は、図１７に図示するステップＳＫ１〜ＳＫ２においてポインタａおよびポインタｂをそれぞれゼロリセットする。次いで、ステップＳＫ３〜ＳＫ４では、ポインタｂを歩進させて、ハイライトアドレスＶＥＬＡＤ［ａ］に一致する２次元アドレスレジスタＡＤ［ｂ］［０］を検索する。つまり、ハイライト音の読み出しアドレスを保持する２次元アドレスレジスタＡＤ［ｂ］［０］を探し出す。そして、該当する２次元アドレスレジスタＡＤ［ｂ］［０］が見つかると、ステップＳＫ３の判断結果が「ＹＥＳ」になり、ステップＳＫ５に進み、２次元アドレスレジスタＡＤ［ｂ］［０］にて指定される曲データ中のベロシティＶＥＬを増加させ、ハイライト音を強調させる。
【００６８】
そして、ステップＳＫ６では、ポインタｃに初期値「１」をセットする。続いて、ステップＳＫ７では、２次元アドレスレジスタＡＤ［ｂ］［ｃ］が存在するか否か、すなわち２次元アドレスレジスタＡＤ［ｂ］［０］で指定されるハイライト音が和音であるかどうかを判断する。ハイライト音が和音でなければ、判断結果は「ＮＯ」になり、ステップＳＫ８に進み、ポインタａを歩進させる。次いで、ステップＳＫ９では、歩進されたポインタａがデータ総数を超えたか否か、つまり全てのハイライト音について音量変更し終えたかどうかを判断する。音量変更し終えていなければ、判断結果は「ＮＯ」になり、上述のステップＳＫ２に処理を戻す。
【００６９】
一方、ハイライト音が和音であると、上記ステップＳＫ７の判断結果は「ＹＥＳ」になり、ステップＳＫ１０に進む。ステップＳＫ１０では、ポインタｂおよびポインタｃで指定される２次元アドレスレジスタＡＤ［ｂ］［ｃ］の読み出しアドレスが指定する曲データ中のベロシティＶＥＬを減少させる。そして、ステップＳＫ１１に進み、ポインタｃを歩進させた後、上記ステップＳＫ７に処理を戻す。これにより、ハイライト音が和音である場合には、２次元アドレスレジスタＡＤ［ｂ］［ｃ］において、ポインタｃを歩進させてハイライト音以外の他の和音構成音を検索し、該当する和音構成音が存在すると、その和音構成音のベロシティＶＥＬを減少させ、和音中のハイライト音を強調させる。
【００７０】
こうして、ハイライト音以外の他の和音構成音の音量を低減し終えると、上記ステップＳＫ７の判断結果が「ＮＯ」になり、前述のステップＳＫ８〜ＳＫ９を実行する。そして、歩進されたポインタａがデータ総数を超え、全てのハイライト音について音量変更し終えると、ステップＳＫ９の判断結果が「ＹＥＳ」になり、本処理を完了させる。
【００７１】
このように、ベロシティ変換処理では、ハイライト音の読み出しアドレス（ハイライトアドレスＶＥＬＡＤ［ａ］）で指定される曲データ中のベロシティＶＥＬを増加させてハイライト音を強調させる一方、ハイライト音が和音を構成していれば、ハイライト音以外の他の和音構成音のベロシティＶＥＬを減少させ、和音中のハイライト音を強調させる。
【００７２】
以上説明したように、第１実施形態では、曲を構成する各音を表す曲データ中から音高が極大変化する極大音と極小変化する極小音とを検出し、検出された極大音および極小音の内、複数音連続的に増加して極大変化した極大音の１つ前の音と、複数音連続的に減少して極小変化した極小音の１つ前の音とをそれぞれ曲の印象を特徴付けるハイライト音に指定し、指定されたハイライト音の強調させるように、当該ハイライト音に対応する曲データ中のベロシティＶＥＬ（音量）を増加させる。これにより、曲の印象を特徴付ける箇所が強調される為、演奏表現力を向上させることが可能になる。
【００７３】
Ｃ．第２実施形態
次に、図１８〜図２１を参照して第２実施形態について説明する。第２実施形態の構成は、第１実施形態と共通するので、その説明については省略する。第２実施形態が第１実施形態と相違する点は、ベロシティ変換処理（図１７参照）を再生処理（メインルーチンのステップＳＡ４）中に実行させることにある。
【００７４】
すなわち、第１実施形態では、図５に図示する編集処理のステップＳＢ８を介して実行される実行処理により「和音検出処理」、「極大・極小検出処理」、「音高検出処理」および「ベロシティ変換処理」を行ってハイライト音の強調させるように曲データ編集する。これに対し、第２実施形態は、図５に図示する編集処理のステップＳＢ８を介して実行される実行処理によって、図１８に図示するように、ステップＳＬ１を介して和音検出処理を、ステップＳＬ２を介して極大・極小検出処理を、ステップＳＬ３を介して音高検出処理をそれぞれ順次実行して曲データ中のハイライト音を求めておく。そして、メインルーチンのステップＳＡ４（図３参照）を介して実行される再生処理にて曲データ再生する際に、編集処理にて求めておいたハイライト音に対応する曲データのベロシティＶＥＬを増加させてハイライト音の再生を強調させるベロシティ変換処理を実行する。以下、こうした第２実施形態による再生処理の動作について図１９〜図２１を参照して説明する。
【００７５】
＜再生処理の動作＞
メインルーチンのステップＳＡ４（図３参照）を介して再生処理が実行されると、ＣＰＵ１１は図１９に図示するステップＳＭ１に進み、曲リスト画面ＬＧを作成して表示部１６に画面表示する。曲リスト画面ＬＧとは、図８に図示する一例のように、ＲＡＭ１３のデータエリアに格納される複数の曲［０］〜曲［Ｎ］の曲番号や曲名などを一覧表示する画面である。次いで、ステップＳＭ２では、この曲リスト画面ＬＧに一覧表示される曲の内から再生する曲を選択し、選択した曲の曲番号ｎをポインタｎにセットする曲選択処理を実行する。
【００７６】
曲選択処理を実行し終えると、ステップＳＭ３に進み、開始画面を表示部１６に画面表示する。開始画面とは、図示していないが、スタートアイコンおよび戻るアイコンを備える画面である。開始画面が画面表示されている状態で戻るアイコンを選択操作すると、ステップＳＭ５の判断結果が「ＹＥＳ」になり、本処理を完了させてメインルーチンに処理を戻し、初期画面表示状態に復帰させる。
【００７７】
一方、開始画面が画面表示されている状態でスタートアイコンを選択操作すると、ステップＳＭ４の判断結果が「ＹＥＳ」になり、ステップＳＭ６に進み、曲番号ｎの曲データの先頭アドレスをレジスタＡＤにストアする。次いで、ステップＳＭ７では、レジスタＡＤに格納される読み出しアドレスが終了アドレスを超えたかどうかを判断する。終了アドレスを超えると、判断結果は「ＹＥＳ」になり、本処理を完了させるが、終了アドレスを超えていなければ、判断結果は「ＮＯ」になり、ステップＳＭ８に進む。ステップＳＭ８では、レジスタＡＤに格納される読み出しアドレスで指定される曲データ［ＡＤ］の内からデルタタイムΔＴを読み出し、続くステップＳＭ９では、読み出したデルタタイムΔＴをレジスタｔにストアする。
【００７８】
次に、ステップＳＭ１０では、一定時間経過するまで待機する。なお、この一定時間とは、図示されていないタイマ割込み処理にて生成されるタイマクロック１周期分（最小分解能時間）の時間を指す。そして、一定時間が経過すると、ステップＳＭ１０の判断結果が「ＹＥＳ」になり、ステップＳＭ１１に進み、レジスタｔの値をデクリメントする。次いで、ステップＳＭ１２では、デクリメントされたレジスタｔの値が「０」以下であるか否か、つまり再生タイミングに達したかどうかを判断する。再生タイミングに達していなければ、判断結果は「ＮＯ」になり、上記ステップＳＭ１０に処理を戻す。以後、再生タイミングに達するまでステップＳＭ１０〜ＳＭ１２を繰り返す。
【００７９】
そして、再生タイミングに達すると、ステップＳＭ１２の判断結果が「ＹＥＳ」になり、図２０に図示するステップＳＭ１３に進み、レジスタＡＤに格納される読み出しアドレスで指定される曲データ［ＡＤ］の内からイベントＥＶ、ノートＮＯＴＥおよびベロシティＶＥＬを読み出す。続いて、ステップＳＭ１４では、読み出したイベントＥＶがノートオンイベントであるか否かを判断する。イベントＥＶがノートオンイベント以外であると、判断結果は「ＮＯ」になり、ステップＳＭ１５に進み、例えばイベントＥＶがノートオフイベントであれば、ノートＮＯＴＥに対応した楽音の消音を指示するノートオフ処理等、イベントＥＶに対応した処理を実行して後述のステップＳＭ２２に進む。
【００８０】
一方、読み出したイベントＥＶがノートオンイベントであると、上記ステップＳＭ１４の判断結果が「ＹＥＳ」になり、ステップＳＭ１６に進み、ポインタａをゼロリセットする。次いで、ステップＳＭ１７〜ＳＭ１９では、データ総数を超えるまでポインタａを歩進させながら、レジスタＡＤに格納される現在の読み出しアドレスに一致するハイライトアドレスＶＥＬＡＤ［ａ］を検索する。
【００８１】
つまり、現在読み出している曲データ［ＡＤ］がハイライト音であるかどうかを判断する。現在読み出している曲データ［ＡＤ］がハイライト音であると、ステップＳＭ１７の判断結果が「ＹＥＳ」になり、ステップＳＭ２０に進み、ハイライト音を強調させるべく、現在読み出されているベロシティＶＥＬを増加させる。続いて、ステップＳＭ２１では、現在読み出されているノートＮＯＴＥで指定される音高の楽音を、増加されたベロシティＶＥＬで発音するよう音源１４に指示する。この後、ステップＳＭ２２に進み、レジスタＡＤに格納される読み出しアドレスを歩進させてから図１９に図示するステップＳＭ７に処理を戻す。
【００８２】
これに対し、現在読み出している曲データ［ＡＤ］がハイライト音でない場合には、上述したステップＳＭ１９の判断結果が「ＹＥＳ」になり、図２１に図示するステップＳＭ２３に進む。ステップＳＭ２３〜ＳＭ２４では、ポインタａおよびポインタｂをそれぞれゼロリセットする。続いて、ステップＳＭ２５〜ＳＭ２６では、ポインタｂを歩進させて、ハイライトアドレスＶＥＬＡＤ［ａ］に一致する２次元アドレスレジスタＡＤ［ｂ］［０］を検索する。つまり、ハイライト音の読み出しアドレスを保持する２次元アドレスレジスタＡＤ［ｂ］［０］を探し出す。そして、該当する２次元アドレスレジスタＡＤ［ｂ］［０］が見つかると、ステップＳＭ２５の判断結果が「ＹＥＳ」になり、ステップＳＭ２７に進み、ポインタｃに初期値「１」をセットする。
【００８３】
次に、ステップＳＭ２８では、２次元アドレスレジスタＡＤ［ｂ］［ｃ］が存在するか否か、すなわち２次元アドレスレジスタＡＤ［ｂ］［０］で指定されるハイライト音が和音であるかどうかを判断する。ハイライト音が和音でなければ、判断結果は「ＮＯ」になり、ステップＳＭ２９に進み、ポインタａを歩進させる。次いで、ステップＳＭ３０では、歩進されたポインタａがデータ総数を超えたか否か、すなわち全てのハイライト音について和音であるか否かをチェックし終えたかどうかを判断する。
【００８４】
ここで、全てのハイライト音について和音であるか否かをチェックし終えたとする。そうすると、ステップＳＭ３０の判断結果が「ＹＥＳ」となり、前述したステップＳＭ２１（図２０参照）に処理を戻す。したがって、現在読み出している曲データ［ＡＤ］がハイライト音に該当せず、しかも全てのハイライト音について和音であるか否かをチェックし終え、これにより現在読み出している曲データ［ＡＤ］が、ハイライト音を有する和音の構成音に含まれていないと判定された場合には、曲データ［ＡＤ］中のノートＮＯＴＥおよびベロシティＶＥＬに基づき音源１４に発音指示する。
【００８５】
さて一方、全てのハイライト音について和音であるか否かをチェックし終えていない場合には、上記ステップＳＭ３０の判断結果が「ＮＯ」になり、上述のステップＳＭ２４以降を実行する。そして、ハイライト音が和音であれば、上述したステップＳＭ２８の判断結果が「ＹＥＳ」になり、ステップＳＭ３１に進み、ポインタｂおよびポインタｃで指定される２次元アドレスレジスタＡＤ［ｂ］［ｃ］が、レジスタＡＤに格納される現在の読み出しアドレスに一致するか否かを判断する。一致しなければ、判断結果は「ＮＯ」になり、ステップＳＭ３２に進み、ポインタｃを歩進させた後、ステップＳＭ２８に処理を戻す。
【００８６】
つまり、ステップＳＭ２８、ＳＭ３１およびＳＭ３２では、現在読み出している曲データ［ＡＤ］が、ハイライト音を有する和音の構成音に含まれているかどうかを判定する。そして、現在読み出している曲データ［ＡＤ］が、ハイライト音を有する和音の構成音に含まれていると、ステップＳＭ３１の判断結果が「ＹＥＳ」になり、ステップＳＭ３３に進む。ステップＳＭ３３では、現在読み出している曲データ［ＡＤ］中のベロシティＶＥＬを減少させた後、前述のステップＳＭ２１（図２０参照）に処理を戻す。
【００８７】
このように、第２実施形態では、編集処理を実行して、曲を構成する各音を表す曲データ中から音高が極大変化する極大音と極小変化する極小音とを検出し、検出された極大音および極小音の内、複数音連続的に増加して極大変化した極大音の１つ前の音と、複数音連続的に減少して極小変化した極小音の１つ前の音とをそれぞれ曲の印象を特徴付けるハイライト音を求めておき、再生処理により曲データを再生する際に、再生する曲データがハイライト音であれば、当該ハイライト音に対応する曲データ中のベロシティＶＥＬ（音量）を増加させて曲の印象を特徴付ける箇所を強調するので、演奏表現力を向上させることができる。また、第２実施形態においても、再生する曲データがハイライト音であって、しかも当該ハイライト音が和音を構成している場合には、ハイライト音以外の他の和音構成音のベロシティＶＥＬを減少させ、和音中のハイライト音を強調させて曲の印象を特徴付ける箇所を強調することができる。
【００８８】
なお、上述した第１および第２実施形態では、複数音連続的に増加して極大変化した極大音の１つ前の音と、複数音連続的に減少して極小変化した極小音の１つ前の音とをそれぞれハイライト音と定義したが、一定期間連続して増加してなる極大音の１つの前の音あるいは一定期間連続して減少してなる極小音の１つの前の音をハイライト音と定義することも可能である。また、本発明では、曲データの音高変化からハイライト音を決定するようにしたが、これに限らず曲の調性に応じてハイライト音を決定することも可能である。
【００８９】
さらに、上述した第１および第２実施形態では、ハイライト音の音量を増加させて曲の印象を特徴付ける箇所を強調させる態様としたが、これに替えて、例えば周知のエクスクルーシブメッセージを備える曲データを用い、ハイライト音に対応する曲データのエクスクルーシブメッセージとして高域強調させるフィルタ特性データを設定すれば、音源１４側がそのフィルタ特性データに従ってハイライト音の周波数特性を高域強調させるように楽音形成すれば、音量増加させずとも曲の印象を特徴付ける箇所を強調させることが可能になり、このようにしても演奏表現力の向上を図ることができる。
【図面の簡単な説明】
【００９０】
【図１】本発明による第１実施形態の構成を示すブロック図である。
【図２】ＲＡＭ１３のデータエリアに格納される曲データの構成を示す図である。
【図３】メインルーチンの動作を示すフローチャートである。
【図４】初期画面ＳＧの一例を示す図である。
【図５】編集処理の動作を示すフローチャートである。
【図６】編集初期画面ＨＳＧ、実行画面ＪＧおよび終了画面ＥＧの各一例を示す図である。
【図７】曲選択処理の動作を示すフローチャートである。
【図８】曲リスト画面ＬＧの一例を示す図である。
【図９】実行処理の動作を示すフローチャートである。
【図１０】和音検出処理の動作を示すフローチャートである。
【図１１】ノートオン検出処理の動作を示すフローチャートである。
【図１２】重ね合わせ検出処理の動作を示すフローチャートである。
【図１３】極大・極小検出処理の動作を示すフローチャートである。
【図１４】極大・極小検出処理の動作を示すフローチャートである。
【図１５】音高検出処理の動作を示すフローチャートである。
【図１６】音高検出処理の動作を示すフローチャートである。
【図１７】ベロシティ変換処理の動作を示すフローチャートである。
【図１８】第２実施形態による実行処理の動作を示すフローチャートである。
【図１９】第２実施形態による再生処理の動作を示すフローチャートである。
【図２０】第２実施形態による再生処理の動作を示すフローチャートである。
【図２１】第２実施形態による再生処理の動作を示すフローチャートである。
【符号の説明】
【００９１】
１０  操作部
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  音源
１５  サウンドシステム
１６  表示部
１７  ＭＩＤＩインタフェース
【図１】
0004626851.tif 000002
【図２】
0004626851.tif 000003
【図３】
0004626851.tif 000004
【図４】
0004626851.tif 000005
【図５】
0004626851.tif 000006
【図６】
0004626851.tif 000007
【図７】
0004626851.tif 000008
【図８】
0004626851.tif 000009
【図９】
0004626851.tif 000010
【図１０】
0004626851.tif 000011
【図１１】
0004626851.tif 000012
【図１２】
0004626851.tif 000013
【図１３】
0004626851.tif 000014
【図１４】
0004626851.tif 000015
【図１５】
0004626851.tif 000016
【図１６】
0004626851.tif 000017
【図１７】
0004626851.tif 000018
【図１８】
0004626851.tif 000019
【図１９】
0004626851.tif 000020
【図２０】
0004626851.tif 000021
【図２１】
0004626851.tif 000022