(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-18
(45)【発行日】2023-05-26
(54)【発明の名称】アルペジエータおよびその機能を備えたプログラム
(51)【国際特許分類】
G10H 1/28 20060101AFI20230519BHJP
【FI】
G10H1/28
(21)【出願番号】P 2021543874
(86)(22)【出願日】2019-09-04
(86)【国際出願番号】 JP2019034871
(87)【国際公開番号】W WO2021044560
(87)【国際公開日】2021-03-11
【審査請求日】2021-12-09
(73)【特許権者】
【識別番号】000116068
【氏名又は名称】ローランド株式会社
(74)【代理人】
【識別番号】110000534
【氏名又は名称】弁理士法人真明センチュリー
(72)【発明者】
【氏名】永田 晃弘
(72)【発明者】
【氏名】萩野 孝明
【審査官】大野 弘
(56)【参考文献】
【文献】特開昭54-095224(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G10H 1/28
(57)【特許請求の範囲】
【請求項1】
アルペジオ構成音の発音タイミングを記憶したアルペジオパターンを有し、演奏者が入力したノート番号に基づく発音を前記アルペジオパターンの発音タイミングで行うことでアルペジオを自動演奏する自動演奏手段を備えたアルペジエータにおいて、
演奏者が入力したノート番号を、少なくとも1のアルペジオ演奏群に使用される音数分記憶可能なノート記憶手段
と、
前記1のアルペジオ演奏群に使用される最大音数を記憶する最大音数記憶手段とを備え、
前記自動演奏手段は、
前記ノート記憶手段に記憶されるノート番号に基づく発音を前記アルペジオパターンに記憶される発音タイミングで行うことで、アルペジオを自動演奏する
ものであり、
演奏者が入力したノート番号の数が前記最大音数を超えた場合、前記ノート記憶手段に記憶されるノート番号のうち最新に入力されたノート番号から前記最大音数までのノート番号に基づいてアルペジオを自動演奏することを特徴とするアルペジエータ。
【請求項2】
アルペジオ構成音の発音タイミングを記憶したアルペジオパターンを有し、演奏者が入力したノート番号に基づく発音を前記アルペジオパターンの発音タイミングで行うことでアルペジオを自動演奏する自動演奏手段を備えたアルペジエータにおいて、
演奏者が入力したノート番号を、少なくとも1のアルペジオ演奏群に使用される音数分記憶可能なノート記憶手段とを備え、
前記自動演奏手段は、
そのノート記憶手段に記憶されるノート番号に基づく発音を前記アルペジオパターンに記憶される発音タイミングで行うことで、アルペジオを自動演奏するものであり、
演奏者による入力が所定期間内に複数行われた場合、その複数入力されたノート番号に基づく発音を和音として前記アルペジオパターンに記憶される発音タイミングにおいて行って、アルペジオを自動演奏することを特徴とするアルペジエータ。
【請求項3】
アルペジオを自動演奏可能に構成された複数の演奏パートを備えており、
前記自動演奏手段は、前記アルペジオを自動演奏可能に構成された演奏パートのうち、前記ノート記憶手段と前記最大音数記憶手段とを有する演奏パートにおいては、その演奏パートが有する前記ノート記憶手段と前記最大音数記憶手段とに基づいて、アルペジオを自動演奏することを特徴とする請求項
1記載のアルペジエータ。
【請求項4】
前記自動演奏手段は、演奏者による入力が所定期間内に複数行われた場合、その複数入力されたノート番号に基づく発音を和音として前記アルペジオパターンに記憶される発音タイミングにおいて行って、アルペジオを自動演奏することを特徴とする請求項
1又は3に記載のアルペジエータ。
【請求項5】
前記自動演奏手段は、演奏者による入力が所定期間内に複数行われた場合、その複数入力されたノート番号を前記ノート記憶手段へ記憶すると共に、その複数入力前の当該演奏パートの発音を消音することを特徴とする請求項
3記載のアルペジエータ。
【請求項6】
前記自動演奏手段は、前記所定期間内に複数入力されたノート番号が前記ノート記憶手段へ記憶され、その複数のノート番号に基づく発音が和音として発音されている状態で、演奏者が新たな入力をした場合、その新たに入力されたノート番号を前記ノート記憶手段へ記憶すると共に、その新たな入力前の当該演奏パートの和音としての発音を消音することを特徴とする請求
項5記載のアルペジエータ。
【請求項7】
記憶部を備えたコンピュータに、演奏者が入力したノート番号に基づく発音をアルペジオパターンの発音タイミングで行うことでアルペジオの自動演奏を実行させるアルペジエータ機能を備えたプログラムにおいて、
前記記憶部を、アルペジオ構成音の発音タイミングを記憶したアルペジオパターンを記憶する記憶手段と
、
1のアルペジオ演奏群に使用される最大音数を記憶する最大音数記憶手段として機能させ、
演奏者が入力したノート番号を、少なくとも1のアルペジオ演奏群に使用される音数分記憶するノート記憶ステップと、
そのノート記憶ステップで記憶されたノート番号に基づく発音を前記アルペジオパターンに記憶される発音タイミングで行う発音ステップと、
を前記コンピュータに実行させ
るアルペジエータ機能を備え、
前記発音ステップは、演奏者が入力したノート番号の数が前記最大音数を超えた場合、前記ノート記憶ステップで記憶されたノート番号のうち最新に入力されたノート番号から前記最大音数までのノート番号に基づいて発音することを特徴とするプログラム。
【請求項8】
記憶部を備えたコンピュータに、演奏者が入力したノート番号に基づく発音をアルペジオパターンの発音タイミングで行うことでアルペジオの自動演奏を実行させるアルペジエータ機能を備えたプログラムにおいて、
前記記憶部を、アルペジオ構成音の発音タイミングを記憶したアルペジオパターンを記憶する記憶手段として機能させ、
演奏者が入力したノート番号を、少なくとも1のアルペジオ演奏群に使用される音数分記憶するノート記憶ステップと、
そのノート記憶ステップで記憶されたノート番号に基づく発音を前記アルペジオパターンに記憶される発音タイミングで行う発音ステップと、
を前記コンピュータに実行させるアルペジエータ機能を備え、
前記発音ステップは、演奏者による入力が所定期間内に複数行われた場合、その複数入力されたノート番号に基づく発音を和音として前記アルペジオパターンに記憶される発音タイミングにおいて行うことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アルペジエータおよびその機能を備えたプログラムに関するものである。
【背景技術】
【0002】
特許文献1に記載されるアルペジオ発音装置は、複数のアルペジオパターンと複数のグルーヴパターンとを記憶しており、2つのアルペジオパターンを選択すると共に各アルペジオパターンに対応付けてグルーヴパターンを選択する。各アルペジオパターンのタイミング及びその他のデータを、対応するグルーヴパターンで変更して、第1のアルペジオパターンおよび第2のアルペジオパターンとして記憶する。鍵盤にアルペジオ鍵域を設定し、アルペジオ鍵域で押鍵された鍵のキーナンバに対応するノートナンバに基づいて音高を決定し2つのアルペジオの楽音を発音する。これにより複数種類のアルペジオ効果を同時に得られるので、表現力豊かなアルペジオの発音となり、多彩な楽音の演奏を楽しむことができる。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1のアルペジオ発音装置では、最後に押鍵した演奏情報がアルペジオ演奏に反映されるだけなので、それまでの演奏情報を含んだ豊かなアルペジオ演奏を実現できないという問題点があった。また和音を押鍵してもアルペジオとして分散して発音され、和音出力することができなかった。
【0005】
本発明は、上記問題点を解決するためになされたものであり、複数の演奏情報を含んだ豊かなアルペジオ演奏を実現できるアルペジエータおよびその機能を備えたプログラムを提供することを目的としている。
【課題を解決するための手段】
【0006】
この目的を達成するために本発明のアルペジエータは、
アルペジオ構成音の発音タイミングを記憶したアルペジオパターンを有し、演奏者が入力したノート番号に基づく発音を前記アルペジオパターンの発音タイミングで行うことでアルペジオを自動演奏する自動演奏手段を備えており、演奏者が入力したノート番号を、少なくとも1のアルペジオ演奏群に使用される音数分記憶可能なノート記憶手段と、前記1のアルペジオ演奏群に使用される最大音数を記憶する最大音数記憶手段とを備え、前記自動演奏手段は、前記ノート記憶手段に記憶されるノート番号に基づく発音を前記アルペジオパターンに記憶される発音タイミングで行うことで、アルペジオを自動演奏するものであり、演奏者が入力したノート番号の数が前記最大音数を超えた場合、前記ノート記憶手段に記憶されるノート番号のうち最新に入力されたノート番号から前記最大音数までのノート番号に基づいてアルペジオを自動演奏することを特徴としている。
本発明の別のアルペジエータは、アルペジオ構成音の発音タイミングを記憶したアルペジオパターンを有し、演奏者が入力したノート番号に基づく発音を前記アルペジオパターンの発音タイミングで行うことでアルペジオを自動演奏する自動演奏手段を備えており、演奏者が入力したノート番号を、少なくとも1のアルペジオ演奏群に使用される音数分記憶可能なノート記憶手段とを備え、前記自動演奏手段は、そのノート記憶手段に記憶されるノート番号に基づく発音を前記アルペジオパターンに記憶される発音タイミングで行うことで、アルペジオを自動演奏するものであり、演奏者による入力が所定期間内に複数行われた場合、その複数入力されたノート番号に基づく発音を和音として前記アルペジオパターンに記憶される発音タイミングにおいて行って、アルペジオを自動演奏することを特徴としている。
【0007】
また、本発明のアルペジエータ機能を備えたプログラムは、記憶部を備えたコンピュータに、演奏者が入力したノート番号に基づく発音をアルペジオパターンの発音タイミングで行うことでアルペジオの自動演奏を実行させるものであり、前記記憶部を、アルペジオ構成音の発音タイミングを記憶したアルペジオパターンを記憶する記憶手段と、1のアルペジオ演奏群に使用される最大音数を記憶する最大音数記憶手段として機能させ、演奏者が入力したノート番号を、少なくとも1のアルペジオ演奏群に使用される音数分記憶するノート記憶ステップと、そのノート記憶ステップで記憶されたノート番号に基づく発音を前記アルペジオパターンに記憶される発音タイミングで行う発音ステップと、を前記コンピュータに実行させるアルペジエータ機能を備え、前記発音ステップは、演奏者が入力したノート番号の数が前記最大音数を超えた場合、前記ノート記憶ステップで記憶されたノート番号のうち最新に入力されたノート番号から前記最大音数までのノート番号に基づいて発音することを特徴としている。
本発明の別のプログラムは、記憶部を備えたコンピュータに、演奏者が入力したノート番号に基づく発音をアルペジオパターンの発音タイミングで行うことでアルペジオの自動演奏を実行させるものであり、前記記憶部を、アルペジオ構成音の発音タイミングを記憶したアルペジオパターンを記憶する記憶手段として機能させ、演奏者が入力したノート番号を、少なくとも1のアルペジオ演奏群に使用される音数分記憶するノート記憶ステップと、そのノート記憶ステップで記憶されたノート番号に基づく発音を前記アルペジオパターンに記憶される発音タイミングで行う発音ステップと、を前記コンピュータに実行させるアルペジエータ機能を備え、前記発音ステップは、演奏者による入力が所定期間内に複数行われた場合、その複数入力されたノート番号に基づく発音を和音として前記アルペジオパターンに記憶される発音タイミングにおいて行うことを特徴を特徴としている。
【図面の簡単な説明】
【0008】
【
図1】一実施形態であるシンセサイザの外観図である。
【
図2】(a)は、シンセサイザの電気的構成を示すブロック図であり、(b)は、音色情報テーブルを模式的に示した図であり、(c)は、押鍵テーブルを模式的に示した図である。
【
図3】(a)は、Arpパターンテーブルを模式的に示した図であり、(b)は、Arpパターンを模式的に示した図であり、(c)は、出力設定テーブルを模式的に示した図であり、(d)は、リメインテーブルを模式的に示した図である。
【
図4】ノートイベント処理のフローチャートである。
【
図5】ノートリメイン処理のフローチャートである。
【
図6】(a)は、ノートオフ処理のフローチャートであり、(b)は、アルペジオ停止処理のフローチャートであり、(c)は、ホールドイベント処理のフローチャートである。
【
図10】ベロシティダック処理のフローチャートである。
【
図11】ステップ更新処理のフローチャートである。
【
図12】キーレンジ機能による補正前および補正後のArpノートを表した図である。
【
図13】(a)は、ドラムパートの発音タイミングを表した図であり、(b)は、リズムパートの発音タイミングを表した図であり、(c)は、ベースパートの発音タイミングを表した図であり、(d)は、ドラムパートの発音タイミングにおけるベロシティを表した図であり、(e)は、リズムパートの発音タイミングにおけるベロシティを表した図であり、(f)は、ベースパートの発音タイミングにおけるベロシティを表した図である。
【
図14】(a)は、Octリセット機能がオフである場合のステップ数に対するノート番号の推移を表した図であり、(b)は、Octリセット機能がオンである場合のステップ数に対するノート番号の推移を表した図である。
【発明を実施するための形態】
【0009】
以下、好ましい実施例について、添付図面を参照して説明する。
図1は、一実施形態であるシンセサイザ1の外観図である。シンセサイザ1は、演奏者(利用者)の演奏操作による楽音や、所定の伴奏音等を混ぜ合わせて出力(放音)する電子楽器(自動演奏装置)である。シンセサイザ1は、演奏者からの入力に応じてアルペジオを自動演奏するアルペジエータ機能を有しており、本実施形態では、後述のリズムパート、ベースパート及びドラムパートの3つのパート(演奏パート)のアルペジオが、それぞれ独立して出力可能に構成される。
【0010】
図1に示す通り、シンセサイザ1には、主に鍵盤2と、設定キー3と、ホールドペダル4とが配設される。鍵盤2には、複数の鍵2aが配設され、その鍵盤2は演奏者の演奏による演奏情報を取得するための入力装置として機能する。演奏者による鍵2aの押鍵/離鍵操作に応じたMIDI(Musical Instrument Digital Interface)規格の演奏情報が、CPU10(
図2参照)へ出力される。
【0011】
設定キー3は、シンセサイザへの各種設定を入力するための操作子である。設定キー3によって、後述の設定テーブル11eに設定されるアルペジオの各種の設定値や、ノートリメイン処理(
図5)の処理対象となるアルペジオのパートが設定される。ホールドペダル4は、後述のホールド機能のオフ/オンを切り換える足踏み式のペダルである。ホールドペダル4に対して、演奏者から踏み込まれた場合には、ホールド機能がオンとなり、演奏者がホールドペダル4を離した場合には、ホールド機能がオフとなる。
【0012】
詳細は後述するが、本実施形態のシンセサイザ1にはアルペジオの出力に関して、1のパートの発音タイミングが指定した他のパートの発音タイミングと重複した場合に、1のパートのベロシティを減少方向に補正して出力音の混濁を抑制するダック機能や、鍵2aへの入力タイミングに応じて、分散したアルペジオを出力するか、和音によるアルペジオを出力するかを切り換える押鍵モードや、入力された1のパートのノート番号を、予め設定された音域に補正することでその音色の音楽的な発音音域でアルペジオを出力するキーレンジ機能や、入力された1のパートのノート番号をオクターブ単位で上昇させるOct(オクターブ)シフト機能において、各小節の先頭でノート番号の上昇をリセットするOctシフトリセット機能が設けられる。以下では「アルペジオ」のことを「Arp」と略し、「オクターブ」のことを「Oct」と略す場合がある。
【0013】
次に、
図2,
図3を参照して、シンセサイザ1の電気的構成を説明する。
図2(a)はシンセサイザ1の電気的構成を示すブロック図である。シンセサイザ1は、CPU10と、フラッシュROM11と、RAM12と、鍵盤2と、設定キー3と、ホールドペダル4と、音源13と、Digital Signal Processor14(以下「DSP14」と称す)とを有し、それぞれバスライン15を介して接続される。DSP14にはデジタルアナログコンバータ(DAC)16が接続され、そのDAC16にはアンプ17が接続され、そのアンプ17にはスピーカ18が接続される。
【0014】
CPU10は、バスライン15により接続された各部を制御する演算装置である。フラッシュROM11は書き換え可能な不揮発性のメモリであり、制御プログラム11aと、音色情報テーブル11bと、押鍵テーブル11cと、Arpパターンテーブル11dと、設定テーブル11eとが設けられる。
【0015】
CPU10によって制御プログラム11aが実行されると、
図4のノートイベント処理や
図7のアルペジオ処理が実行される。音色情報テーブル11bは、シンセサイザ1が有する音色に関する情報を記憶するデータテーブルである。
図2(b)を参照して音色情報テーブル11bを説明する。
【0016】
図2(b)は、音色情報テーブル11bを模式的に示す図である。
図2(b)に示す通り音色情報テーブル11bには、ピアノ、ベース、ドラム等、シンセサイザ1で発音可能な音色が記憶される。音色情報テーブル11bに記憶された音色を、後述の
図3(c)で後述の設定テーブル11eに設定することで、各パートの音色が設定される。
【0017】
図2(a)に戻る。押鍵テーブル11cは、鍵盤2の鍵2a(
図1参照)のオンオフ状態と、そのオンオフ状態の変更時刻とを記憶するデータテーブルである。
図2(c)を参照して押鍵テーブル11cを説明する。
【0018】
図2(c)は、押鍵テーブル11cを模式的に示した図である。
図2(c)に示す通り、押鍵テーブル11cには、鍵2aのそれぞれに割り当てられるノート番号と、そのノート番号におけるオンオフ状態と、そのオンオフ状態が変更された時刻である変更時刻とが記憶される。本実施形態では、変更時刻は10μsec単位で記憶される。鍵2aの押健や離鍵が行われる度に、押鍵テーブル11cの該当するノート番号のオンオフ状態が更新され、その押健や離鍵がされた時刻が変更時刻に記憶される。
【0019】
図2(a)に戻る。Arpパターンテーブル11dは、1小節単位におけるアルペジオの発音タイミングが設定されたArpパターン(アルペジオパターン)が記憶されるデータテーブルである。
図3(a),
図3(b)を参照して、Arpパターンテーブル11dを説明する。
【0020】
図3(a)は、Arpパターンテーブル11dを模式的に示した図である。
図3(a)に示す通り、Arpパターンテーブル11dには、予め設定されたArpパターンであるArpパターンA1,ArpパターンA2,ArpパターンA3,・・・が記憶される。ここでArpパターンの構成について、
図3(b)を参照して、ArpパターンA1を一例として説明する。
【0021】
図3(b)は、ArpパターンA1を模式的に示した図である。Arpパターンには、アルペジオとして発音される音程毎に、発音タイミングが記憶される。かかる発音タイミングは1小節におけるタイミングを複数に等分した、「ステップ」毎に設定される。具体的に、ArpパターンA1には、あるパートのアルペジオとして出力される音において、ノート番号A~Cの3つの音程の音が設定され、これらノート番号A~C毎に、1小節を0~7の8つのステップに等分したタイミングのうちの発音タイミングが設定される。
図3(b)では説明のため、ステップ数0~7のうちの発音タイミングに対して「〇」が付してある。
【0022】
ArpパターンA1において、ノート番号Aはステップ数2,6が発音タイミングであり、ノート番号Bはステップ数0~7が発音タイミングであり、ノート番号Cはステップ数3,7が発音タイミングである。このように発音タイミングが設定されたArpパターンA1におけるノート番号A~Cのそれぞれに、具体的なノート番号(ノート番号は後述のリメインテーブルに記憶されるノート番号)を割り当て、ステップ数0~7に設定された発音タイミングでの発音を繰り返すことで、アルペジオが自動演奏される。
【0023】
図2(a)に戻る。設定テーブル11eは、アルペジオのパート毎の音色やArpパターン等の楽音の出力に関する設定を記憶したデータテーブルである。設定テーブル11eに設定された後述の音色、Arpパターン等に応じてアルペジオが発音される。
図3(c)を参照して設定テーブル11eを説明する。
【0024】
図3(c)は、設定テーブル11eを模式的に示した図である。設定テーブル11eには、リズムパート、ベースパート及びドラムパートの3つのパート毎に、音色と、Arpパターンと、ステップTickと、リメインテーブルと、最大ノート数と、押鍵モードと、ベロシティと、キーレンジ変更機能のオン/オフ設定と、最低ノート番号と、許容Oct幅と、Octシフト機能のオン/オフ設定と、Octシフト幅と、Octリセット機能のオン/オフ設定と、ダック機能のオン/オフ設定と、ダックパートと、ダックノートと、ダックレートとの設定項目が設けられる。
【0025】
音色には、音色情報テーブル11b(
図2(b)参照)に記憶された音色のうちのいずれかが設定され、Arpパターンには、Arpパターンテーブル11dに記憶されたArpパターンA1,A2,・・・のうちいずれかが設定される。ステップTickには、Arpパターンに設定されているステップ毎の所要時間、即ちTick値が記憶される。本実施形態では、1Tick当たりの所要時間として、「1msec」が例示される。
【0026】
リメインテーブルには、パート毎にアルペジオとして出力される音の音程情報が記憶される。設定テーブル11eには、リズムパートのリメインテーブルとしてリメインテーブルR1が、ベースパートのリメインテーブルとしてリメインテーブルR2が、ドラムパートのリメインテーブルとしてリメインテーブルR3が、それぞれ設定される。ここで
図3(d)を参照して、リメインテーブルR1を一例としてリメインテーブルの詳細を説明する。
【0027】
図3(d)は、リメインテーブルR1を模式的に示した図である。リメインテーブルには、鍵2aが押鍵された順に、該当する鍵2aのノート番号と、その押鍵が行われた時刻である取得時刻が記憶される。本実施形態では、取得時刻は
図2(c)の押鍵テーブル11cの変更時刻と同様に10μsec単位で記憶される。具体的にリメインテーブルR1には、取得されたノート番号「55」,「60」,「70」,・・・に対して、その取得時刻である「13:56:00.50102」,「13:56:00.60203」,「13:56:00.70304」,・・・が関連付けられて記憶される。
【0028】
図3(c)に戻る。最大ノート数には、それぞれのパート毎に一連のアルペジオで出力される和音数の最大数である最大音数が記憶される。押鍵モードには、鍵2aへの押鍵に対するアルペジオのモードが記憶され、具体的には、押鍵された鍵2aに該当する音の和音を分散させたアルペジオを出力する「シングル」と、押鍵された鍵2aに該当する音の和音によるアルペジオを出力する「コード」とのいずれかのモードが記憶される。ベロシティには、パート毎のベロシティの初期値が記憶される。
【0029】
キーレンジ変更機能には、キーレンジ変更機能の有効/無効(オン/オフ)の設定状態が記憶される。最低ノート番号には、設定テーブル11eの音色について、聴感上の違和感が小さいとされる発音音域の下限に該当するノート番号が記憶される。また許容Oct幅には、最低ノート番号から順に音高を上昇させた場合に、発音音域の上限に該当するノート番号までのOct数が記憶される。
【0030】
Octシフト機能には、Octシフト機能の有効/無効(オン/オフ)の設定状態が記憶される。Octシフト幅は、Octシフト機能において変化させるOct数(音域範囲)が記憶される。Octリセット機能のオン/オフ設定には、Octリセット機能の有効/無効(オン/オフ)が記憶される。
【0031】
またダックの対する設定値として、ダック機能には、ダック機能の有効/無効(オン/オフ)の設定状態が記憶される。ダックパートには、ダック機能においてダックを行う際に参照する他のパートが記憶される。
【0032】
ダックノートには、そのダックパートにおいて更にダックを行う際に参照するノート番号が記憶される。特に、ダックパートの全てのノート番号がダックを行う対象となる場合は、ダックノートにその旨を示す「ANY」が記憶される。またダックレートには、ダックする際にそのパートのベロシティの変化率が記憶される。
【0033】
本実施形態では、設定テーブル11eのリメインテーブル及び押鍵モードは、鍵2aへの入力に応じた設定値が設定され、設定テーブル11eの音色、Arpパターン、ステップTick、最大ノート数、ベロシティ、キーレンジ変更機能のオン/オフ設定、最低ノート番号、許容Oct幅、Octシフト機能のオン/オフ設定、Octシフト幅、Octリセット機能のオン/オフ設定、ダック機能のオン/オフ設定、ダックパート、ダックノート及びダックレートは設定キー3による設定値が設定される。このように設定テーブル11eへ設定された各パートの設定値に基づいて、アルペジオが出力される。
【0034】
図2(a)に戻る。RAM12は、CPU10が制御プログラム11a等のプログラム実行時に各種のワークデータやフラグ等を書き換え可能に記憶するメモリであり、鍵盤2から入力された音のノート番号が記憶される入力ノートメモリ12aと、Arpノートメモリ12bと、発音するアルペジオのベロシティ値が記憶されるベロシティメモリ12cと、Octカウンタメモリ12dと、Tick値が記憶されるTickメモリ12eと、ステップ数メモリ12fとが設けられる。
【0035】
Arpノートメモリ12bは、発音するアルペジオのノート番号が記憶されるメモリである。Arpノートメモリ12bは、複数のノート番号が記憶可能に構成され、Arpノートメモリ12bに複数のノート番号が記憶されている場合は、Arpノートメモリ12bに記憶された複数のノート番号の音が同一の発音タイミングで発音される。
【0036】
Octカウンタメモリ12dは、Octシフト機能において発音中の音のOct数が記憶されるメモリであり、ステップ数メモリ12fは、アルペジオパターンにおける現在のステップが記憶されるメモリである。本実施形態では、Octカウンタメモリ12d及びステップ数メモリ12fは、パート毎に区別してOct数及びステップ数が記憶される。
【0037】
音源13は、CPU10から入力される演奏情報に応じた波形データを出力する装置であり、DSP14は、音源13から入力された波形データを演算処理するための演算装置である。DAC16は、DSP14から入力された波形データを、アナログ波形データに変換する変換装置である。アンプ17は、該DAC16から出力されたアナログ波形データを、所定の利得で増幅する増幅装置であり、スピーカ18は、アンプ17で増幅されたアナログ波形データを楽音として放音(出力)する出力装置である。
【0038】
次に
図4~
図14を参照して、CPU10で実行される処理について説明する。
図4は、ノートイベント処理のフローチャートである。ノートイベント処理は、鍵盤2の鍵2a(
図1参照)の押鍵または離鍵を検知した場合に実行される割込処理である。
【0039】
ノートイベント処理はまず、押鍵または離鍵された鍵2aに該当するノート番号を取得し、入力ノートメモリ12aに保存する(S1)。S1の処理の後、ノートオン、即ち鍵2aが押鍵されたかを確認する(S2)。
【0040】
S2の処理において、ノートオンの場合(S2:Yes)は、押鍵テーブル11cのノート番号が全てオフかどうか、即ちいずれの鍵2aも押鍵されてなかったかを確認する(S3)。S3の処理において、押鍵テーブル11cのノート番号が全てオフの場合は(S3:Yes)、いずれの鍵2aも押鍵されてない状態から、いずれかの鍵2aが押鍵されたタイミングであり、アルペジオの演奏を開始させるタイミングでもあるので、
図7で後述のアルペジオ処理を開始させる(S4)。S4の処理よって開始されたアルペジオ処理は、以降400μsec毎に実行される。
【0041】
S4の処理の後、Octカウンタメモリ12dの全パートにおけるOct数と、ステップ数メモリ12fにおける全パートのステップ数とに0を設定する(S5)。即ちアルペジオの演奏を開始に伴い、Octシフト機能で用いられるOct数と、Arpパターンのステップ数とに0が設定される。
【0042】
S3の処理において押鍵テーブル11cのいずれかがオンの場合は(S3:No)、既にアルペジオ処理が開始されているので、S4,S5の処理をスキップする。S3,S5の処理の後、押鍵テーブル11cのノート番号のうち、押鍵された鍵2aと一致するノート番号にオンを設定し、その変更時刻を現在の時刻に更新する(S6)。
【0043】
S6の処理の後、設定キー3から後述のノートリメイン処理の対象パートを取得する(S7)。S7の処理の後、ノートリメイン処理を実行する(S8)。ここで
図5を参照してノートリメイン処理を説明する。
【0044】
図5は、ノートリメイン処理のフローチャートである。ノートリメイン処理は、鍵2aへの入力に応じたノート番号を対象パートのリメインテーブルに設定すると共に、鍵2aへの入力タイミングに応じて押鍵モードを設定する処理である。
図5のノートリメイン処理において「対象パート」とは、
図4のS7の処理で設定キー3から取得された設定されたパートを表す。また、設定キー3にて対象パートが複数設定されている場合は、それぞれのパートに対して個別に処理を行うものとする。
【0045】
ノートリメイン処理はまず、押鍵テーブル11cから過去30msec以内に他のノートオンがあったかを確認する(S20)。具体的には、押鍵テーブル11cにおいて状態がオンであるノート番号を取得し、更にその中から変更時刻が現在の時刻から30msec以内のノート番号があるかを確認する。
【0046】
S20の処理において過去30msec以内に他のノートオンがあった場合は(S20:Yes)、設定テーブル11eにおける対象パートの押鍵モードに「コード」を設定する(S21)。一方でS20の処理において過去30msec以内に他のノートオンがなかった場合は(S20:No)、設定テーブル11eにおける対象パートの押鍵モードに「シングル」を設定する(S22)。
【0047】
即ち過去30msec以内に他のノートオンが存在した場合は、今回入力された入力ノートと同時に入力されたと判断されるので、対象パートの押鍵モードに、和音によるアルペジオを出力する「コード」が設定される。一方で過去30msec以内にいずれのノートオンも存在しなかった場合は、今回の入力ノートが他のノートと同時に入力されていないと判断されるので、対象パートの押鍵モードに、分散したアルペジオを出力する「シングル」が設定される。
【0048】
S21,S22の処理の後、S21,S22の処理によって、設定テーブル11eにおける対象パートの押鍵モードが変更されたかを確認する(S23)。S23の処理において押鍵モードが変更された場合は(S23:Yes)、設定テーブル11eにおける対象パートのリメインテーブルに記憶されているノート番号の音を全て消音し(S24)、そのリメインテーブルのノート番号及び取得時刻をクリアする(S25)。一方で、S21,S22の処理によって対象パートの押鍵モードが変更していない場合は(S23:No)、S24,S25の処理をスキップする。
【0049】
S23,S25の処理の後、設定テーブル11eにおける対象パートの押鍵モードを確認する(S26)。S26の処理において対象パートの押鍵モードが「コード」の場合は(S26:コード)、押鍵テーブル11cから過去30msec以内にオンされたノート番号を全て取得する(S27)。具体的には、押鍵テーブル11cにおいて、状態がオンであるノートを取得し、更にその中から変更時刻が現在の時刻から30msec以内のノートを全て取得する。なお、S27の処理によって取得されるノートには、今回入力されたノートも含まれる。
【0050】
S27の処理の後、S27の処理で取得されたノートの数が、設定テーブル11eにおける対象パートの最大ノート数よりも大きいかを確認する(S28)。S28の処理において、取得されたノートの数が対象パートの最大ノート数よりも大きい場合は(S28:Yes)、取得されたノートのうち最も古いノート、即ち押鍵テーブル11cにおける変更時刻が最も早いノートを削除し(S29)、残りのノートを取得されたノートとして、再度S28の処理を実行する。
【0051】
一方で、S28の処理において、取得されたノートの数が対象パートの最大ノート数以下の場合は(S28:No)、取得されたノートを古い順、即ち変更時刻が早い順に、ノート番号とそのノート番号の変更時刻とを、設定テーブル11eにおける対象パートのリメインテーブルに追加する(S30)。
【0052】
S26の処理において対象パートの押鍵モードがシングルの場合は(S26:シングル)、設定テーブル11eの対象パートにおけるリメインテーブルに記憶されているノート数が、設定テーブル11eの対象パートにおける最大ノート数以上かを確認する(S32)。S32の処理において、対象パートのリメインテーブルのノート数が、対象パートの最大ノート数以上の場合は(S31:Yes)、対象パートのリメインテーブルから最も古いノート、即ち対象パートのリメインテーブルにおける取得時刻が最も早いノートを削除した上で(S32)、再度S31の処理を実行する。
【0053】
一方でS31の処理において、対象パートのリメインテーブルに記憶されているノートの数が、対象パートの最大ノート数より小さい場合は(S31:No)、入力ノートメモリ12aのノート番号をその取得時刻と共に対象パートのリメインテーブルへ追加する(S33)。S31,S35の処理の後、ノートリメイン処理を終了し、
図4のノートイベント処理に戻る。
【0054】
図4に戻る。S2の処理において、ノートオフ、即ちいずれかの鍵2aが離鍵された場合は(S2:No)、ノートオフ処理を行う(S9)。
図6(a),
図6(b)を参照してノートオフ処理を説明する。
【0055】
図6(a)は、ノートオフ処理のフローチャートである。ノートオフ処理はまず、押鍵テーブル11cのうち、押鍵された鍵2aと一致するノート番号にオフを設定し、その変更時刻を現在の時刻に更新する(S40)。
【0056】
S40の処理の後、ホールド設定がオフかどうかを確認する(S41)。ホールド設定は、
図6(c)で後述のホールドイベント処理において、ホールドペダルが踏まれている状態か、離されている状態かを表す設定値である。S41の処理において、ホールド設定がオフの場合は(S41:Yes)、アルペジオ停止処理(S42)を行う。ここで
図6(b)を参照して、アルペジオ停止処理を説明する。
【0057】
図6(b)は、アルペジオ停止処理のフローチャートである。アルペジオ停止処理はまず、押鍵テーブル11cのノート番号の状態が全てオフかを確認する(S50)。S50の処理において押鍵テーブル11cのノート番号の状態が全てオフである場合は(S50:Yes)、アルペジオ処理を停止させる(S51)。設定テーブル11eにおける全パートのリメインテーブルをクリアする(S52)。これにより、
図7で後述のアルペジオ処理の400μsec毎の実行が停止され、アルペジオの出力が停止される。
【0058】
一方で押鍵テーブル11cのノート番号の状態のうち、いずれかがオンである場合は(S50:No)、S51,S52の処理をスキップする。そして、S51,S52の処理の後、ノートオフ処理を終了し、
図5のノートイベント処理へ戻る。
【0059】
図6(a)に戻る。ホールド設定がオンの場合は(S41:No)、S42のアルペジオ停止処理をスキップする。S41,S42の処理の後、ノートオフ処理を終了する。
【0060】
ここで
図6(c)を参照して、ホールドイベント処理を説明する。ホールドイベント処理は、ホールドペダル4のオン/オフ状態が変化した場合に実行される割込処理である。ホールドイベント処理はまず、ホールドペダル4の状態を確認する(S60)。S60の処理において、ホールドペダル4の状態がオンの場合は(S60:オン)、ホールド設定をオンにする(S61)。
【0061】
一方でS60の処理において、ホールドペダル4の状態がオフの場合は(S60:オフ)、ホールド設定をオフにし(S62)、
図6(b)で上記したアルペジオ停止処理(S62)を行う。S42,S61の処理の後、ホールドイベント処理を終了する。
【0062】
即ち
図6(a)のノートオフ処理において、ホールド設定がオフであり(
図6(a)のS41:Yes)、いずれかの鍵2aが押鍵されており、押鍵テーブル11cにおいて状態がオンのノート番号が存在している場合は(
図6(b)のS50:Yes)、アルペジオ処理の停止と、設定テーブル11eの全パートのリメインテーブルのノート番号のクリアとがスキップされる。この際、設定テーブル11eの全パートのリメインテーブルのノート番号は、鍵2aが離鍵前の状態が維持される。
【0063】
従って、いずれかの鍵2aが押鍵されていれば、最後にノートオンした時点における、設定テーブル11eのリメインテーブルの状態が維持され、かかるリメインテーブルによるアルペジオ出力が継続される。これにより、アルペジオ出力に際して、アルペジオとして出力するノート番号に対応する鍵2aを全て押鍵し続ける必要がないので、アルペジオ出力に対する演奏者の操作性を向上できる。また、鍵2aが全て離鍵された場合には、アルペジオ出力が停止されるので、演奏者はアルペジオ出力の停止を直感的かつ容易に実行できる。
【0064】
一方でノートオフ処理において、ホールド設定がオンである場合は(
図6(a)のS41:No)、S42のアルペジオ停止処理がスキップされる。これによって、全ての鍵2aを離鍵しても、最後にノートオンした時点における設定テーブル11eのリメインテーブルの状態が維持され、かかるリメインテーブルによるアルペジオ出力が継続される。
【0065】
これにより、演奏者がホールドペダル4を踏み、ホールド設定がオンである場合は、演奏者はアルペジオ出力を継続しながらも、その手を鍵2aから離すことができるので、その分設定キー3や他の機器等の操作や、他の作業をすることができる。また、この状態で演奏者がホールドペダル4を離し、ホールド設定がオフとなると、アルペジオ出力が停止される。よって、アルペジオ出力の停止を鍵2aだけでなくホールドペダル4の操作によっても可能となるので、演奏者のアルペジオ出力に対する操作性を向上できる。
【0066】
図4に戻る。S8のノートリメイン処理またはS9のノートオフ処理の後、ノートイベント処理を終了する。
【0067】
次に
図7を参照して、アルペジオ処理を説明する。
図7は、アルペジオ処理のフローチャートである。アルペジオ処理は、
図4のS4の処理によるアルペジオ処理の開始指示がされた場合に、400μsec毎に定期的に実行されるタイマー割込処理である。
【0068】
アルペジオ処理はまず、設定キー3においてアルペジオの設定が変化したかを確認する(S70)。S70の処理において、アルペジオの設定が変化した場合は(S70:Yes)、設定キー3から変化したアルペジオの設定を取得し、設定テーブル11eに記憶する(S71)。特に設定キー3で設定された設定値に該当する音色が音色情報テーブル11bから取得されて設定テーブル11eに記憶され、設定キー3で設定された設定値に該当するArpパターンがArpパターンテーブル11dから取得されて設定テーブル11eに記憶される。一方で、アルペジオの設定が変化していない場合は(S70:No)、S71の処理をスキップする。
【0069】
S70,S71の処理の後、ステップ数メモリ12fにおける各パートのステップ数と、設定テーブル11eの全パートにおけるArpパターンの発音タイミングとを比較して、発音タイミングであるパートを取得する(S72)。なお、以下の
図7~
図10の処理において、S72の処理で取得されたパートのことを「発音パート」と称す。
【0070】
S72の処理の後、S72の処理において、発音パートが取得できたかを確認する(S73)。S73の処理において、発音パートが取得できた場合は(S73:Yes)、設定テーブル11eにおける発音パートの押鍵モードを確認する(S74)。S74の処理において、発音パートの押鍵モードがシングルの場合は(S74:シングル)、設定テーブル11eにおける発音パートのリメインテーブルから、その発音パートのArpパターンの発音タイミングに該当するノート番号を取得し、Arpノートメモリ12bに保存する(S75)。
【0071】
具体的には、設定テーブル11eにおける発音パートのArpパターンから現在のステップ数メモリ12fの発音パートのステップ数のノートを取得し、そのノートに割り当てられているノート番号を、設定テーブル11eにおけるリメインテーブルから取得し、Arpノートメモリ12bへ保存する。
【0072】
ここで押鍵モードがシングルである場合の、Arpパターンとリメインテーブルとの割り当てについて説明する。本実施形態では、Arpパターンに設定される複数のノート番号に対して、リメインテーブルに記憶された順のノート番号が割り当てられる。具体的に、
図3(b)のArpパターンA1と、
図3(d)のリメインテーブルR1との割り当てを例に説明すると、ArpパターンA1にはノート番号A~Cが設定され、リメインテーブルR1には記憶された順にノート番号「55」,「60」,「70」が設定されている。従って、ArpパターンA1にリメインテーブルR1を割り当てた場合には、ArpパターンA1のノート番号Aには「55」が、ノート番号Bには「60」が、ノート番号Cには「70」がそれぞれ割り当てられる。
【0073】
この例において、S75の処理において発音タイミングであるステップ数が0の場合には、ArpパターンA1のノート番号Bに該当するノート番号「60」が取得されてArpノートメモリ12bへ保存される。ステップ数が2の場合には、ArpパターンA1のノート番号B,Cに該当するノート番号「60」,「70」が取得されてそれぞれArpノートメモリ12bへ保存される。
【0074】
一方で、S74の処理において、発音パートの押鍵モードがコードの場合は(S74:コード)、設定テーブル11eにおける発音パートのリメインテーブルから、全ノート番号を取得し、Arpノートメモリ12bに保存する(S76)。
図3(b)のArpパターンA1と、
図3(d)のリメインテーブルR1を例に説明すると、ArpパターンA1にはノート番号A~Cのそれぞれに、リメインテーブルR1には記憶されたノート番号「55」,「60」及び「70」が設定される。
【0075】
即ち押鍵モードがコードの場合は、設定テーブル11eにおける発音パートのリメインテーブルから、全ノート番号が取得され、Arpノートメモリ12bに設定される。これによって、Arpパターンに設定された発音タイミングにおいて、リメインテーブルに記憶されるノート番号の全ての音が、同時に出力される。即ちリメインテーブルに設定されるノート番号の全ての音を含んだ「和音」による、表現豊かなアルペジオが出力できる。
【0076】
一方で押鍵モードがシングルの場合は、Arpパターンの各ノート番号に、リメインテーブルのノート番号がそれぞれ割り振られ、その中から発音タイミングに該当するノート番号が取得され、Arpノートメモリ12bに設定される。これにより、リメインテーブルに記憶されたノート番号の音による、分散されたアルペジオを出力できる。
【0077】
また、押鍵モードがコードの場合の和音によるアルペジオも、押鍵モードがシングルの場合の分散したアルペジオと同様のArpパターンによって出力される。これにより、押鍵モードに応じてArpパターンを作成する必要がないので、Arpパターンを作成する手間を低減できると共に、Arpパターンが記憶されるArpパターンテーブル11dの記憶容量も低減できる。
【0078】
ところで、
図5のノートリメイン処理では、押鍵モードがコードからシングルへ、又はシングルからコードへ変更される度に、リメインテーブルに記憶されているノート番号の発音が停止され、リメインテーブルがクリアされる。これにより、押鍵モードの変更前に出力されるアルペジオを構成する音が、押鍵モードの変更後のアルペジオに混入しないので、押鍵モードの変更後のアルペジオに演奏者が意図しない音が混入したり、アルペジオが不協和音となることを防止できる。
【0079】
更に
図5のノートリメイン処理においては、過去のノートオンから30msec以内に新たなノートオンがされた場合、即ちノートオンが同時にされた場合に押鍵モードはコードに設定され、一方で、過去のノートオンから30msec以上経過後に新たなノートオンがされた場合、即ちノートオンが分散してされた場合は、押鍵モードはシングルに設定される。
【0080】
即ちノートオンが同時されたか又は分散してされたかに応じて、出力されるアルペジオの態様も和音によるアルペジオを出力するか、又は分散したアルペジオを出力するかが切り替わる。これにより、演奏者による鍵2aへの演奏操作と、出力されるアルペジオとの態様の違いを小さくできるので、演奏者にとって鍵2aへの演奏操作に対するアルペジオ出力への違和感を抑制できる。
【0081】
S75,S76の処理の後、Octシフト処理(S77)を実行する。ここで、
図8を参照して、Octシフト処理を説明する。
【0082】
図8は、Octシフト処理のフローチャートである。Octシフト処理は、設定テーブル11eにおける発音パートのOctシフト幅に基づいて、Arpノートメモリ12bのノート番号のOctを上昇させる処理である。
【0083】
Octシフト処理はまず、設定テーブル11eにおける発音パートのOctシフト機能がオンかを確認する(S90)。S90の処理において、発音パートのOctシフトがオンである場合は(S90:Yes)、Arpノートメモリ12bのノート番号にOctカウンタメモリ12dにおける発音パートのOct数分のノート数を加算する(S91)。これにより、Arpノートメモリ12bのノート番号が、Octカウンタメモリ12dにおける発音パートのOct数分、上昇される。
【0084】
S91の処理の後、Octカウンタメモリ12dにおける発音パートのOct数に1を加算し(S91)、その結果が設定テーブル11eにおける発音パートのOctシフト幅より大きいかを確認する(S93)。S93の処理において、Octカウンタメモリ12dにおける発音パートのOct数が、設定テーブル11eにおける発音パートのOctシフト幅より大きい場合は(S93:Yes)、Octカウンタメモリ12dにおける発音パートのOct数に0を設定する(S94)。
【0085】
従って、Octシフト機能がオンの場合は、
図7のS75,S76の処理で取得されたノート番号から発音パートのOctシフト幅分まで上昇され、その後、取得されたノート番号に戻され、再びノート番号をOctシフト幅分まで上昇される。これにより、周期的に音高が変化するアルペジオが出力される。
【0086】
詳細は
図11で後述するが、更にOctリセット機能がオンの場合は、Arpパターンの先頭の発音タイミング、即ち各小節の先頭でも、Octカウンタメモリ12dにおける発音パートのOct数に0を設定することで、各小節の先頭とOctシフト機能による音高の変化の開始とを同期させる。
【0087】
S93の処理においてOctカウンタメモリ12dにおける発音パートのOct数が、設定テーブル11eにおける発音パートのOctシフト幅以下の場合は(S93:No)、S94の処理をスキップし、S90の処理において、発音パートのOctシフトがオフである場合は(S90:No)、S91~S94の処理をスキップする。S90,S93,S94の処理の後、
図7のアルペジオ処理に戻る。
【0088】
S77のOctシフト処理の後、キーレンジ処理(S78)を実行する。ここで
図9を参照して、キーレンジ処理を説明する。
【0089】
図9は、キーレンジ処理のフローチャートである。キーレンジ処理は、Arpノートメモリ12bのノート番号を加算または減算することで、該ノート番号を、設定テーブル11eにおける発音パートの最低ノート番号と許容Oct幅とに基づく範囲内に、音域補正する処理である。
【0090】
キーレンジ処理はまず、設定テーブル11eにおける発音パートのキーレンジ変更機能がオンか確認する(S100)。S100の処理において、発音パートのキーレンジ変更機能がオンである場合は(S100:Yes)、設定テーブル11eから発音パートの最低ノート番号および許容Oct幅を取得する(S101)。S91の処理の後、取得した最低ノート番号に、許容Oct幅分に該当するノート数を加算した値を、最高ノート番号に設定する(S102)。
【0091】
S102の処理の後、Arpノートメモリ12bのノート番号がS91の処理で取得した最低ノート番号より小さいかを確認する(S103)。S103の処理において、Arpノートメモリ12bのノート番号が最低ノート番号より小さい場合は(S103:Yes)、Arpノートメモリ12bのノート番号に、1オクターブに該当するノート数を加算し(S104)、再びS103の処理を行う。
【0092】
一方で、S103の処理において、Arpノートメモリ12bのノート番号が最低ノート番号以上の場合は(S103:No)、Arpノートメモリ12bのノート番号がS91で設定された最高ノート番号以上かを確認する(S105)。S105の処理において、Arpノートメモリ12bのノート番号が最高ノート番号以上の場合は(S105:Yes)、Arpノートメモリ12bのノート番号から1オクターブに該当するノート数を減算し(S106)、再びS105の処理を行う。
【0093】
S105の処理において、Arpノートメモリ12bのノート番号が最高ノート番号より小さい場合は(S105:No)、又はS100の処理において、発音パートのキーレンジ変更機能がオフである場合は(S100:No)、キーレンジ処理を終了して
図7のアルペジオ処理に戻る。
【0094】
ここで
図12を参照して、キーレンジ機能について説明する。
図12は、キーレンジ機能による補正前および補正後のArpノートを表した図である。
図12においては、Arpノートメモリ12bのノート番号を昇順に表している。
図12において、最低ノート番号は「36」に、許容Oct幅は「2」にそれぞれ設定されている。これによって、最高ノート番号は「60」に設定される。
【0095】
最低ノート番号および許容Oct幅は、発音パートにおける音色について、聴感上の違和感が小さいとされる値が設定されている。例えば、ベース音においては低音域が特徴的であるため、高音域まで発音可能とするとベース音らしさが失われ、音楽性が破綻する虞がある。そこで、ベース音らしさを維持できる最大の音高が最大ノート番号となるように、最低ノート番号および許容Oct幅が設定される。
【0096】
ここで、Arpノートメモリ12bのノート番号には、鍵2aに基づいたノート番号が設定されるので、最低ノート番号より小さなノート番号(
図12におけるノート番号34や35)や、最高ノート番号以上のノート番号(
図12におけるノート番号61や62)が設定され得る。
【0097】
そこで、キーレンジ処理においては、設定テーブル11eにおける発音パートの最低ノート番号および許容Oct幅から最高ノート番号が設定され、Arpノートメモリ12bのノート番号が最低ノート番号と最高ノート番号との間でなければ、Arpノートメモリ12bのノート番号に1オクターブ単位のノート数が加算または減算されることで、音域補正される。
【0098】
例えば、Arpノートメモリ12bのノート番号として、最低ノート番号「36」より小さな「34」が入力された場合は、1オクターブ分のノート数(即ち「12」)が加算されることで、ノート番号が「46」に補正され、最高ノート番号「60」以上の「60」が入力された場合は1オクターブ分のノート数が減算されることで、ノート番号が「48」に補正される。このように、Arpノートメモリ12bのノート番号が、最低ノート番号と、最高ノート番号との間に音域補正され、発音パートの音色における発音音域とでき、よりその音色の楽器らしい音によるアルペジオを出力できる。
【0099】
更に音域補正の際に、Arpノートメモリ12bのノート番号をOct単位で加算または減算するので、補正の前後におけるArpノートメモリ12bのノート番号の音名は、同一となる。これにより、発音パートのアルペジオにおいて複数の音による和音を出力する場合でも、音域補正によって音名が変更されることがないので、和音によるハーモニーを崩すことなく、アルペジオを出力できる。
【0100】
この際、許容Oct幅が2以上設定され、発音音域内に同一の音名の音が複数存在する場合は、Arpノートメモリ12bのノート番号は、そのノート番号に最も近く且つ同一の音名を持つノート番号へ補正される。
図12で例示すると、
図12における許容Oct幅は「2」なので、Arpノートメモリ12bのノート番号が最低ノート番号より小さい場合は、2のオクターブのうち、小さい方のオクターブに属する同一の音名のノート番号に音域補正される。一方で、Arpノートメモリ12bのノート番号が最高ノート番号より大きい場合は、2のオクターブのうち、大きい方のオクターブに属する同一の音名のノート番号に音域補正される。
【0101】
これにより、音域補正前のノート番号と音域補正後のノート番号との差が増大するのを抑制できるので、出力されるアルペジオが不自然となることを抑制できる。
【0102】
図7に戻る。S78のキーレンジ処理の後、設定テーブル11eにおける発音パートの初期ベロシティを取得し、ベロシティメモリ12cに設定する(S79)。S79の処理の後、ベロシティダック処理(S80)を実行する。ここで
図10を参照して、ベロシティダック処理を説明する。
【0103】
図10は、ベロシティダック処理のフローチャートである。ベロシティダック処理は、設定テーブル11eにおける発音パートのダックパート、ダックノート及びダックレートに基づいて、ベロシティメモリ12cのベロシティを減少方向に補正する処理である。
【0104】
ベロシティダック処理はまず、設定テーブル11eにおける発音パートのダック機能がオンかを確認する(S110)。S110の処理において、発音パートのダック機能がオンの場合は(S110:Yes)、設定テーブル11eから発音パートのダックパート、ダックノート及びダックレートを取得する(S111)。S111の処理の後、ステップ数メモリ12fにおけるダックパートのステップ数が、設定テーブル11eにおけるダックパートのArpパターンの発音タイミングかを確認する(S112)。
【0105】
S112の処理において、ダックパートのステップ数がダックパートのArpパターンの発音タイミングである場合は(S112:Yes)、その発音タイミングにおけるダックパートのノート番号が、ダックノートと一致するかを確認する(S113)。なお、ダックノートに「ANY」が設定されている場合は、S113の処理においては、ダックパートのノート番号がいずれであっても、ダックノートと一致していると判断される。
【0106】
S113の処理において、発音タイミングにおけるダックパートのノート番号が、ダックノートと一致する場合は、ベロシティメモリ12cのベロシティを、ダックレートに基づいて補正する(S114)。具体的には、補正前のベロシティをV、ダックレートをRaとすると、補正後のベロシティV'は以下の数式1によって算出される。
【0107】
【数1】
即ち、100からダックレートを減算した値に、補正前のベロシティを乗じ、その値を100で除した値が、補正後のベロシティとされる。
【0108】
S113の処理において、発音タイミングにおけるダックパートのノート番号が、ダックノートと不一致の場合は(S113:No)、S114の処理をスキップし、S112において、ダックパートのステップ数がダックパートのArpパターンの発音タイミングではない場合は(S112:No)、S113,S114の処理をスキップし、S110の処理において、発音パートのダック機能がオフの場合は(S110:No)、S111~S114の処理をスキップする。そして、S110,S112~S114の処理の後、ベロシティダック処理を終了し、
図7のアルペジオ処理に戻る。
【0109】
ここで
図13を参照して、ダック機能について説明する。
図13(a)、
図13(b)及び
図13(c)は、それぞれドラムパート、リズムパート及びベースパートの発音タイミングを表した図であり、
図13(d)、
図13(e)及び
図13(f)は、それぞれドラムパート、リズムパート及びベースパートの発音タイミングにおけるベロシティを表した図である。
【0110】
図13(a)において、ドラムパートにはノート番号50,60が割り当てられており、1小節当たりのステップ数は2に設定され、ノート番号50にはステップ数0が発音タイミングに設定され、ノート番号60にはステップ数1が発音タイミングに設定されている。また、ドラムパートのベロシティには100が、ダック機能はオフにそれぞれ設定されている。
【0111】
図13(b)において、リズムパートにはノート番号60,65,69が割り当てられており、1小節当たりのステップ数は4に設定され、ノート番号60にはステップ数2が発音タイミングに設定され、ノート番号65にはステップ数0~3が発音タイミングに設定され、ノート番号69にはステップ数3が発音タイミングに設定されている。また、リズムパートのベロシティには100が、ダック機能にはオンが、ダックパートには
図13(a)のドラムパートが、ダックノートには50が、ダックレートには50がそれぞれ設定されている。
【0112】
図13(c)において、ベースパートにはノート番号58,71,72が割り当てられており、1小節当たりのステップ数は8に設定され、ノート番号58は、ステップ数0~2が発音タイミングに設定され、ノート番号71は、ステップ数3~5が発音タイミングに設定され、ノート番号72は、ステップ数6,7が発音タイミングに設定されている。また、ベースパートのベロシティには100が、ダック機能にはオン、ダックパートには
図13(a)のドラムパートが、ダックノートには「ANY」が、ダックレートには100がそれぞれ設定されている。
【0113】
図13(d)におけるドラムパートは、ダック機能がオフなので、全ての発音タイミングでベロシティが100で発音される。一方で、
図13(e)のリズムパートでは、ノート番号65の発音タイミングであるステップ数0が、ドラムパートの発音タイミングであるステップ数0と一致し、更にそのドラムパートのノート番号が50であり、これはリズムパートにおけるダックノートと一致する。従って、
図13(e)のリズムパートにおいてはステップ数0のノート番号65のベロシティが、数式1に基づき100から50に減少される。
【0114】
同様に、
図13(f)のベースパートでは、ノート番号58の発音タイミングであるステップ数0と、ノート番号71の発音タイミングであるステップ数4とが、ドラムパートの発音タイミングであるステップ数0,1とそれぞれ一致する。ここで、ベースパートにおけるダックノートには、全てのノート番号がダックを行う対象となる「ANY」が設定されている。従って、
図13(e)のベースパートにおいては、ステップ数0のノート番号58のベロシティと、ステップ数4のノート番号71のベロシティとが、数式1に基づき100から0に減少される。
【0115】
このようにベロシティダック処理においては、発音パートにおける発音タイミングと、ダックパートにおける発音タイミングとが一致し、更にそのダックパートの発音タイミングにおけるノート番号がダックノートと一致する場合は、ダックレートに応じてベロシティメモリ12cのベロシティが減少される。これにより、複数のパートが同時に発音しても出力レベルの増大が抑制されるので、出力音が混濁するのを抑制できる。
【0116】
また、ダックパートはパート毎に設定可能であり、更にダックノートによってベロシティメモリ12cのベロシティを減少させるノート番号を指定でき、加えてダックレートによってベロシティを減少させる度合いが指定できる。これにより、ベロシティメモリ12cのベロシティを減少させるパートと、そのパートにおけるノート番号と、ベロシティを低減させる度合いとを詳細に設定できるので、より効果的に出力音の混濁を抑制できる。
【0117】
図7に戻る。S80のベロシティダック処理の後、設定テーブル11eにおける発音パートの音色と、Arpノートメモリ12bのノート番号と、ベロシティメモリ12cのベロシティとに基づいて、音源13に発音指示を出力することで、アルペジオを出力する(S81)。
【0118】
S73の処理において、発音パートが存在しない場合は(S73:No)、S74~S81の処理をスキップする。S73,S81の処理の後、ステップ更新処理(S82)を実行する。ここで
図11を参照して、ステップ更新処理を説明する。
【0119】
図11は、ステップ更新処理のフローチャートである。ステップ更新処理は、前回のステップ更新処理の実行からの経過時間に基づき、ステップ数メモリ12fの各パートのステップ数を更新する処理である。
【0120】
ステップ更新処理は、まずパート番号Pに1を設定する(S120)。便宜上、各パートそれぞれには、パート番号が割り振られており、具体的に、リズムパートにはパート番号1、ベースパートにはパート番号2、ドラムパートにはパート番号3が割り振られている。よって、パート番号Pが「1」の場合はリズムパートを表し、パート番号Pが「2」の場合はベースパートを、パート番号Pが「3」の場合はドラムパートをそれぞれ表す。以下「パート番号Pに該当するパート」のことを、単に「パートP」と略す。
【0121】
S120の処理の後、前回のステップ更新処理からの経過時間に応じたTick値を取得する(S121)。上記した通り、本実施形態では1Tick当たりの所要時間は1msecに設定されているので、前回のステップ更新処理からの経過時間を1msecで除した値を取得する。
【0122】
S121の処理の後、Tickメモリ12eにおけるパートPのTick値に、S122の処理で取得したTick値を加算する(S122)。S122の処理の後、Tickメモリ12eにおけるパートPのTick値が、設定テーブル11eにおけるパートPのステップTickより大きいかを確認する(S123)。
【0123】
S123の処理において、パートPのTick値がパートPのステップTickより大きい場合は(S123:Yes)、パートPにおいてステップ数を更新するタイミングであるので、のTickメモリ12eにおけるパートPのTick値から、設定テーブル11eにおけるパートPのステップTickを減算し(S124)、ステップ数メモリ12fにおけるパートPのステップ数に1を加算する(S125)。
【0124】
S125の処理の後、ステップ数メモリ12fにおけるパートPのステップ数が、設定テーブル11eのおけるパートPのArpパターンの総ステップ数より大きいかを確認する(S126)。S126の処理において、パートPのステップ数が、パートPのArpパターンの総ステップ数より大きい場合は(S126:Yes)、パートPのステップ数がパートPのArpパターンの終端のステップ数まで至り、1小節分のアルペジオ出力が完了したので、次の小節へのアルペジオ出力に備え、ステップ数メモリ12fにおけるパートPのステップ数に0を設定する(S127)。
【0125】
S127の処理の後、設定テーブル11eにおけるパートPのOctリセット機能がオンかを確認する(S128)。S128の処理において、パートPのOctリセット機能がオンの場合は(S128:Yes)、Octカウンタメモリ12dにおけるパートPのOct数に0を設定する(S129)。これにより、Octシフト機能がオンのパートPにおける次のステップ数、即ち次の小節の先頭に該当する発音タイミングで、パートPのリメインテーブルにおける先頭のノート番号に復帰し、そのノート番号よるアルペジオ出力がされる。
【0126】
ここでOctリセット機能について、
図14を参照して説明する。
図14(a)は、Octリセット機能がオフである場合のステップ数に対するノート番号の推移を表した図であり、
図14(b)は、Octリセット機能がオンである場合のステップ数に対するノート番号の推移を表した図である。
図14(a),
図14(a)は、共にOctシフト機能における初期のノート番号は60に設定され、Octシフト幅は「3」に設定され、また、Arpパターンとして、0~7の8つのステップ数に対して、ステップ数0,4,6が発音タイミングとして設定されている。
【0127】
図14(a)に示す通り、Octリセット機能がオフの場合は、初期のノート番号の60を1オクターブずつ上昇させて発音し、3オクターブ上昇させた後は、初期のノート番号の60をに復帰される。従って、最初の小節におけるステップ数0ではノート番号60の音が、ステップ数4ではノート番号72の音が、ステップ数6ではノート番号84の音が、2つ目の小節におけるステップ数0ではノート番号94の音が発音され、2つ目の小節におけるステップ数4でノート番号60の音が発音される。即ち最初の小節におけるステップ数0と2つ目の小節におけるステップ数0とでは、異なる音高の音が発音される。
【0128】
これは設定テーブル11e(
図3(c)参照)において、Arpパターンと、Octシフト機能におけるOctシフト幅とがそれぞれ独立して設定されるので、Arpパターンにおける発音タイミングの数と、Octシフト幅とが必ずしも一致しないからである。こうなると、Arpパターンにおける先頭、即ち各小節の先頭で異なる音高の音が出力されるので、1小節毎に繰り返されるArpパターンの発音タイミングによる周期と、Octシフト機能による音高の変化による周期とにズレが生じ、不自然なアルペジオ出力となり、聴取者に違和感を与える虞がある。
【0129】
これに対して、
図14(b)においてOctリセット機能がオンである場合は、各小節の先頭でOctカウンタメモリ12dのOct数が0に復帰するので、各小節の先頭、即ちステップ数0で発音される音は、全てノート番号60に復帰される。これにより、1小節毎のArpパターンの発音タイミングによる周期と、音高の変化による周期とを同期させることができるので、聴取者に一定のフレーズを演奏している印象を与えることができる。
【0130】
図11に戻る。S128の処理において、パートPのOctリセット機能がオフの場合は(S128:No)、S129の処理をスキップし、S126の処理において、パートPのステップ数が、パートPのArpパターンの総ステップ数以下の場合は(S126:No)、S127~S129の処理をスキップし、S123の処理において、パートPのTick値がパートPのステップTick以下の場合は(S123:No)、S124~S129の処理をスキップする。
【0131】
S123,S126,S128,S129の処理の後、パート番号Pに1を加算し(S130)、加算したパート番号Pが全パート数、即ち「3」より大きいかを確認する(S131)。パート番号Pが全パート数以下の場合は(S131:No)、ステップ数を後進にしていないパートが存在するので、S121の処理以下を繰り返す。一方でパート番号Pが全パート数より大きい場合は(S131:Yes)、ステップ更新処理を終了し、
図7のアルペジオ処理に戻る。S82のステップ更新処理の後、アルペジオ処理を終了する。
【0132】
以上、上記実施形態に基づき説明したが、種々の改良変更が可能であることは容易に推察できるものである。
【0133】
上記実施形態では、出力するアルペジオのパートをリズムパート、ベースパート及びドラムパートの3つのパートとしたが、アルペジオのパート数は3に限られるものではなく、3パート以下でも良いし、3パート以上でも良い。
【0134】
上記実施形態では、Arpパターンに1小節分の発音タイミングを記憶した。しかし、これに限られず、Arpパターンに2小節分や4小節分、あるいはそれ以上の小節の単位の発音タイミングを記憶しても良い。
【0135】
上記実施形態では、押鍵モードがコードかシングルかを判断するために用いられる時間を30msecとしたが、これに限られるものではなく、30msec以上でも30msec以下でも良い。特に押鍵モードとして「コード」を優先させたい場合は、30msecより大きくすれば良いし、「シングル」を優先させたい場合は、30msecより小さくすれば良い。
【0136】
上記実施形態では、押鍵モードがシングルの場合に、Arpパターンのノート番号に対して、リメインテーブルのノート番号を、リメインテーブルに記憶されたノート番号順に割り当てた。しかし、これに限られるものではなく、Arpパターンのノート番号に、リメインテーブルに記憶された順番とは逆順のノート番号を割り当てても良い。また、Arpパターンのノート番号に、リメインテーブルのノート番号を音程順に割り当てても良い。この場合、Arpパターンのノート番号に割り当てる音程順は、昇順でも良いし、降順でも良い。
【0137】
上記実施形態では、設定テーブル11eの初期ベロシティにパート毎のベロシティを記憶し、かかるベロシティを、
図10のベロシティダック処理で補正したものに基づいてアルペジオ出力した。しかし、アルペジオ出力に用いるベロシティの値は、設定テーブル11eの初期ベロシティに限られず、例えば、演奏者による鍵2aに入力された際のベロシティを用いても良い。
【0138】
上記実施形態では、設定テーブル11eに記憶されるダックパートとして、1のパートを記憶したが、記憶するダックパートの数は1に限られず、2以上記憶しても良いし、自パート以外の全てのパートを記憶しても良い。また、設定テーブル11eに記憶されるダックノートとして、1のノート番号または全ノート番号を表す「ANY」を記憶したが、記憶するダックノートはこれらに限られず、2以上の具体的なノート番号を記憶しても良い。
【0139】
上記実施形態では、設定テーブル11eに記憶されるダックレートとして、変化率を記憶したが、これに限られず、例えば、初期ベロシティを減少させる固定値を記憶し、ベロシティメモリ12cのベロシティから初期ベロシティを減算することで、ベロシティメモリ12cのベロシティを補正しても良い。
【0140】
上記実施形態では、設定テーブル11eに最低ノート番号と許容Oct幅とを記憶し、
図9のキーレンジ処理における音域補正(S103~S106)で用いる最高ノート番号を、設定テーブル11eの最低ノート番号と許容Oct幅とから算出した。しかし、必ずしもこれに限られるのものではなく、設定テーブル11eに対して許容Oct幅の代わりに最高ノート番号を記憶し、設定テーブル11eの最低ノート番号と最高ノート番号とに基づいて音域補正を行っても良い。
【0141】
或いは、設定テーブル11eに対して最低ノート番号の代わりに最高ノート番号を記憶し、最高ノート番号から許容Oct幅分に該当するノート数を減算することで最低ノート番号を算出し、算出された最低ノート番号と、設定テーブル11eの最高ノート番号とに基づいて音域補正を行っても良い。
【0142】
また、
図9のキーレンジ処理の音域補正において、Arpノートメモリ12bに1オクターブのノート数ずつ加算または減算した。しかし、これに限られず、Arpノートメモリ12bに2オクターブ以上のノート数ずつ、加算または減算しても良い。
【0143】
更に
図9のキーレンジ処理において、Arpノートメモリ12bのノート番号が、最低ノート番号より小さい場合(S103)、または最高ノート番号以上の場合に(S105)、音域補正した(S104,S106)。しかし、音域補正をする条件はこれに限られず、Arpノートメモリ12bのノート番号が、最低ノート番号以下の場合、または最高ノート番号より大きい場合に、音域補正をしても良い。
【0144】
上記実施形態では、
図8のOctシフト処理において、Arpノートメモリ12bのノート番号を上昇させた。しかし、必ずしもこれに限られず、Arpノートメモリ12bのノート番号を下降させても良い。また、Arpノートメモリ12bのノート番号を1オクターブ分ずつ上昇させたが、Arpノートメモリ12bのノート番号を1オクターブ分ずつ上昇させるものに限られず、2オクターブ分ずつでも良いし、それ以上のOct数分ずつ上昇させても良い。更に、Arpノートメモリ12bのノート番号を上昇させる単位は、Oct単位に限られず、所定の音階数等、音楽的にまとまりのある単位ずつで上昇させても良い。
【0145】
上記実施形態では、電子楽器としてシンセサイザ1を例示した。しかし、必ずしもこれに限られるものではなく、アルペジエータ機能のみを有するアルペジエータや、電子オルガンや電子ピアノ、電子吹奏楽器等の他の電子楽器に適用しても良い。
【0146】
上記実施形態では、制御プログラム11aをシンセサイザ1のフラッシュROM11に記憶し、シンセサイザ1上で動作する構成とした。しかし、必ずしもこれに限られるものではなく、PC(パーソナル・コンピュータ)や携帯電話、スマートフォンやタブレット端末等の他のコンピュータ上で制御プログラム11aを動作させる構成としても良い。この場合、シンセサイザ1の鍵盤2の代わりに、PC等に有線または無線で接続されたMIDI規格の鍵盤キーボードや文字入力用のキーボードから、演奏情報を入力する構成としても良いし、PC等の表示装置に表示されたソフトウェアキーボードから、演奏情報を入力する構成としても良い。
【符号の説明】
【0147】
1 シンセサイザ(アルペジエータ)
11 フラッシュROM(記憶部)
11e 設定テーブル(最大音数記憶手段、記憶手段)
A1 Arpパターン(アルペジオパターン)
R1 リメインテーブル(ノート記憶手段)
S70~S82 自動演奏手段、発音ステップ
S26~S33 ノート記憶ステップ