JPH11249680A - 音列合成装置 - Google Patents

音列合成装置

Info

Publication number
JPH11249680A
JPH11249680A JP10069219A JP6921998A JPH11249680A JP H11249680 A JPH11249680 A JP H11249680A JP 10069219 A JP10069219 A JP 10069219A JP 6921998 A JP6921998 A JP 6921998A JP H11249680 A JPH11249680 A JP H11249680A
Authority
JP
Japan
Prior art keywords
pitch
character code
sound
scale
string
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP10069219A
Other languages
English (en)
Other versions
JP3651241B2 (ja
Inventor
Jiyunichi Minamitaka
純一 南高
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP06921998A priority Critical patent/JP3651241B2/ja
Publication of JPH11249680A publication Critical patent/JPH11249680A/ja
Application granted granted Critical
Publication of JP3651241B2 publication Critical patent/JP3651241B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 ごく簡単な入力から音列を合成する音列合成
装置を提供する。 【解決手段】 文字コード列入力部10は文字コード列
を入力する。音高列生成部30は入力文字コード列の各
文字コードをスケールデータベース40を介してスケー
ルの音高に変換する。例えば、基準データ選択部31に
て入力文字コード列の特定要素である文字コードを基準
データとして選択し、これに対し、スケールの特定構成
音に対応する基準音高を割り当てる。差算出・変形部3
2にて、基準データと各入力文字コードとの差を求め、
この差をスケールデータベース40を介して基準音高に
対する音程に変換し、この音程に基準音高を加えて入力
文字コードの音高を決定する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、コンピュータ等
を用いた音楽装置に関し、特に、音列を合成する音列合
成装置に属する。
【0002】
【従来の技術】音列を合成(compose)する音列
合成装置は既に知られている。例えば、本件出願人に係
る特開昭63−250696号には、モチーフ、コード
進行及びキー(調)を入力すると音列を自動的に合成す
る音列合成装置が開示されている。しかしながら、この
種の従来の音列合成装置は、使用者にある程度の音楽知
識が必要であり、入力が複雑であるという問題がある。
【0003】
【発明が解決しようとする課題】したがって、この発明
の目的は、音楽知識が全くなくても、きわめて簡単な入
力だけで音列を自動合成する音列合成装置を提供するこ
とである。
【0004】
【課題を解決するための手段】この発明によれば、文字
コード列を入力する文字コード列入力手段と、スケール
のピッチクラスセットを記憶するスケール記憶手段と、
入力された文字コード列の各文字コードをスケール記憶
手段を用いてスケール音の音高に変換して音列を生成す
る音列生成手段と、を有することを特徴とする音列合成
装置が提供される。この構成によれば、文字コード列を
入力するだけで、スケール音の音高列から成る音列(メ
ロディ)が合成される。したがって、誰でも簡単にオリ
ジナルメロディを得ることができる。
【0005】更に、この発明によれば、文字コード列を
入力する文字コード列入力手段と、スケールのピッチク
ラスセットを記憶するスケール記憶手段と、入力された
文字コード列のなかの特定要素である文字コードを基準
データとして選択する基準データ選択手段と、前記基準
データに対して基準の音高を割り当てるとともに入力さ
れた文字コード列の各文字コードを前記基準の音高と前
記スケール記憶手段とを用いてスケール音の音高に変換
して音列を生成する音列生成手段と、を有することを特
徴とする音列合成装置が提供される。この構成によれ
ば、上記作用、効果が奏されるのみならず、入力文字コ
ード列の特定要素を基準データとして選択し、この基準
データに対して基準の音高を割り当て、入力文字コード
列の各文字コードを基準データとの関係においてスケー
ルの音高に変換しているので音楽的な音列を得ることが
容易になる。
【0006】更に、この発明によれば、文字コード列を
入力する文字コード列入力手段と、スケールのピッチク
ラスセットを記憶するスケール記憶手段と、各音高に割
り当てるべき音長データを記憶する音長データ記憶手段
と、入力された文字コード列から音列を生成する音列生
成手段であって、(a)入力された文字コード列の各文
字コードを前記スケール記憶手段を用いてスケール音の
音高に変換する音高変換手段と、(b)変換された音高
を前記音長データ記憶手段を用いて音長に変換する音長
変換手段と、から成る音列生成手段と、を有することを
特徴とする音列合成装置が提供される。この構成によれ
ば、入力文字コードをスケール上の音高に変換し、変換
した音高をそれに対応づけた音長に変換しているので、
入力文字コード列からリズムをもった音列を簡単に得る
ことができる。
【0007】更に、この発明によれば、文字コード列を
入力する文字コード列入力手段と、スケールのピッチク
ラスセットを記憶するスケール記憶手段と、各音高に割
り当てるべき音長と休符長のデータを記憶する音長・休
符長記憶手段と、入力された文字コード列から音列を生
成する音列生成手段であって、(a)入力された文字コ
ード列の各文字コードを前記スケール記憶手段を用いて
スケール音の音高に変換することにより、音列の音高列
を生成する音高列生成手段と、(b)変換された音高を
前記音長・休符長記憶手段を用いて音長とそれに続く休
符長に変換することにより音列のリズムを生成するリズ
ム生成手段と、から成る音列生成手段と、を有すること
を特徴とする音列合成装置が提供される。この構成によ
れば、入力文字コードをスケール上の音高に変換し、変
換した音高をそれに対応づけた音長とそれに続く休符長
に変換しているので、入力文字コード列から、所望のリ
ズムをもった音列を簡単に得ることができる。
【0008】更に、この発明によれば、文字コード列を
入力する文字コード列入力手段と、スケールのピッチク
ラスセットを記憶するスケール記憶手段と、各音高に割
り当てるべき音長データを記憶する音長データ記憶手段
と、各音高に割り当てるべきエンベロープ制御データを
記憶するエンベロープ制御データ記憶手段と、入力され
た文字コード列から音列を生成する音列生成手段であっ
て、(a)入力された文字コード列の各文字コードを前
記スケール記憶手段を用いてスケール音の音高に変換す
る音高変換手段と、(b)変換された音高を前記音長デ
ータ記憶手段を用いて音長に変換する音長変換手段と、
(c)変換された音高を前記エンベロープ制御データ記
憶手段を用いてエンベロープ制御データに変換するエン
ベロープ変換手段と、(d)変換された音高、音長及び
エンベロープ制御データに従う波形を生成する波形生成
手段と、から成る音列生成手段と、を有することを特徴
とする音列合成装置が提供される。この構成によれば、
入力文字コードをスケール上の音高に変換し、変換した
音高をそれに対応する音長とエンベロープ制御データに
変換し、変換した音高、音長及びエンベロープ制御デー
タを用いて波形データを生成しているので入力文字コー
ド列から音楽的な表現、リズムの付いた音列を得ること
ができる。
【0009】更に、この発明によれば、文字コード列を
入力する文字コード列入力手段と、スケールのピッチク
ラスセットを記憶するスケール記憶手段と、入力された
文字コード列から音列を生成する音列生成手段であっ
て、(a)入力された文字コード列のなかの特定要素で
ある文字コードを基準データとして選択する基準データ
選択手段と、(b)前記基準データに対して基準の音高
を割り当てる基準音高割当手段と、(c)入力された文
字コード列の各文字コードと前記基準データとの差を算
出する差算出手段と、(d)算出された差を前記スケー
ル記憶手段を用いて変形して音程を算出する音程算出手
段と、(e)前記基準音高と前記音程とから各文字コー
ドの音高を決定する音高決定手段と、から成る音列生成
手段と、を有することを特徴とする音列合成装置が提供
される。この構成によれば、入力文字コード列の各文字
コードをスケール上の音高に変換する際に、入力文字コ
ード列の特定要素を基準データとして選び、この基準デ
ータに基準の音高を割り当て、入力された各文字コード
と基準データとの差を算出し、この差をスケール上の音
程に変換し、この音程を基準音高と組み合わせて各文字
コードの音高を決定しているので、入力文字コード列か
ら音楽的な音列を得ることが容易になる。
【0010】この構成に加え、繰り返し制御手段を設
け、この繰り返し制御手段にて基準データ選択手段、基
準音高割当手段、差算出手段、音程算出手段及び音高決
定手段による、入力文字コード列から音列への変換動作
を繰り返し、変換動作の都度、基準データを変更するよ
うに制御する。このようにすれば、同じ入力文字コード
列から、複数の異なる音列を簡単に得ることができる。
【0011】
【発明の実施の形態】以下、図面を参照してこの発明の
実施の形態を説明する。図1にこの発明による音列合成
装置の機能ブロック図を示す。文字コード列入力部10
は文字コード列を入力する。この発明に従い、音列生成
部20は入力された文字コード列から音列を生成する。
音列生成部20は音高列生成部30を有する。音高列生
成部30は、入力された文字コード列の各文字コードを
スケールデータベース40を用いてスケール上の音高に
変換することにより音列の音高列を生成する。ここにス
ケールデータベースはスケールのピッチクラスセットを
記憶するメモリである。1つの簡単な例では、音高列生
成部30は文字コードの値または文字コード値に対して
モジュロ演算等の演算をした値(例えば、文字コード値
mod12)をスケールの構成音番号とみることによ
り、スケールデータベースから該当する構成音番号のピ
ッチクラスまたは音高を得る。
【0012】好ましい構成例では、音高列生成部30
は、基準データ選択部31と差算出変形部32を有す
る。基準データ選択部31は、入力された文字コード列
のなかの特定の要素(例えば特定番目、例えば最後に入
力された文字コード)である文字コードを基準データと
して選択し、この基準データに対して基準の音高を割り
当てる。差算出・変形部は、入力された文字コード列の
各文字コードと基準データとの差を算出し、この差をス
ケールデータベース40を用いて変換して音程(基準の
音高に対する音程)を求め、この音程と基準の音高とを
合成して各文字コードの音高を決定する。上記基準の音
高はスケールの特定の構成音(例えば主音)に対応づけ
られる。したがってこの構成によれば、入力文字コード
列の特定の要素が基準データとしてスケールの特定の構
成音に対応づけられるため、調性上自然な音高列を得る
ことが容易になる。
【0013】好ましい構成例において、音列生成部20
は音高列生成部30が生成した音高列から音列のリズム
を生成するリズム生成部50を有する。リズム生成部5
0は音高に対応してリズムデータを記憶するリズムデー
タベース60を用いることにより、音高列をリズムに変
換する。一構成例において、リズムデータベース60
は、各音高に割り当てるべき音長と休符長のデータを記
憶する音長・休符長データベース61を有する。この場
合、リズム生成部50は、生成された音高列の各音高を
音長・休符長データベース61を用いて音長とそれに続
く休符長に変換する。なお、音長・休符長データベース
61の代りに、各音高に割り当てるべき音長データを記
憶する音長データベースを用いることができる。
【0014】更にリズムデータベース60は各音高に割
り当てるべきエンベロープ制御データを記憶するエンベ
ロープ制御データベース62を有し得る。この場合、リ
ズム生成部50は生成された音高列(ピッチデータの
列)の各音高を用いてエンベロープ制御データベース6
2をルックアップして対応するエンベロープ制御データ
に変換する。更に音列生成部20は生成された音列の各
音の波形を生成する波形生成部70を有し得る。音高列
生成部30とリズム生成部50とにより、各文字コード
が音高、音長及びエンベロープ制御データに変換される
場合において、波形生成部70はこれらの変換情報(音
高、音長、エンベロープ制御データ)に従う波形を生成
する。
【0015】図2は本音列合成装置のハードウェア構成
例を示すブロック図である。CPU1はROM2に記憶
されたプログラムに従ってシステムの各部を制御する。
ROM2はプログラムと固定データを記憶する。RAM
3はCPU1のワークメモリとして使用される。入力装
置は文字(数字のみでもよく、数字を含む文字でもよい
し、数字を含まない文字でもよい)と制御用のコードを
入力する。楽音合成装置は作成された波形データからア
ナログの楽音信号を出力する。サウンドシステム6はア
ンプ、スピーカを含み、楽音信号を増幅して放音する。
【0016】図3は音列合成装置が使用するデータベー
スを示すものである。スケールデータベースscale
[ ]は複数のスケールのピッチクラスセットを記憶す
る。ここでは、1オクターブのなかのどの音(どのピッ
チクラスの音またはどの度数の音)がスケール音である
かどうかを“1”、“0”のデータで表現している。音
長データベースdur[ ]は1オクターブ内の各音高
に割り当てられるべき音長データを記憶する。休符長デ
ータベースrest[ ]は1オクターブ内の各音高に
割り当てるべき休符長データを記憶する。ホールド時間
データベースhold[ ]は1オクターブ内の各音高
に割り当てるべきエンベロープ制御データとしてホール
ド時間データを記憶する。
【0017】なお図3の例では各データベースはとり得
る音高の範囲を1オクターブに圧縮して表現しているが
これには限らず、例えば数オクターブにわたる音高のそ
れぞれに対応づけてデータをもたせるようにしてもよ
い。またスケールデータベースは各スケールの音名コー
ド(例えばC=“1”、C♯=“2”)を記憶する構造
でもよい。また、図3のスケールデータベースscal
e[ ]において、記号“C”は音名、音高またはピッ
チクラスの意味としてとらえてもよいし、あるいはスケ
ールの度数1(または1度の音程)としてみてもよい。
これにより、ある基準音高、例えばE3(第3オクター
ブのE)をスケールの度数1のスケール音に対応づけた
場合、例えば、記号“G”に対応するスケール音は基準
音高E3に対して完全5度の音程をもつ音高B3として
解釈される。
【0018】図4に音列合成装置の動作において使用す
る変数を示す。文字コード列char[ ]は入力装置
4から入力された文字コード列を表す。波形データwa
ve[ ]は各サンプリングポイントでの波形の振幅値
を記憶する。その他の変数として、データポイントpt
r、ノート番号note(スケール上の音高を表わ
す)、周波数freq、基準周波数basef、基準デ
ータbased、円周率×2である2pi、サンプリン
グ周波数fs、発音中の長さlen、振幅定数amp、
エンベロープ定数env、データのレンジrange、
カウンタcnt、単位時間長time_unit、振幅
変更定数rel、時定数k、ノートオフセットnote
_offset(例えば24)等が使用される。
【0019】図5に本音列合成装置の全体動作を表わす
メインルーチンのフローチャートを示す。A1で各種変
数(basef、2pi、time_unit等)を初
期化する。A2で入力装置4をキースキャンし、ユーザ
ーの入力操作に従って対応する処理を実行する。すなわ
ち、文字コード列の入力指示(A3)に対しては、文字
コードの入力処理A4を実行し、メロディ作成の指示入
力A5に対してはメロディ(音列)作成処理A6を実行
し、モニター(音列の再生)の指示入力A6に対しては
モニター処理A8(楽音合成装置5を動作させて生成し
た音列を楽音として再生する処理)を実行する。なお、
図5のフローには示していないが、スケールデータベー
スscale[ ]上のどのスケールをメロディ作成処
理A6で使用するか決めるスケール選択処理を加えるこ
とが好ましい。スケール選択処理は、入力装置4からス
ケールの種類を選択入力することで行われる。
【0020】図6に入力処理A4のフローチャートを示
す。まずデータカウンタdcを“0”に初期化し(B
1)、B2でキーをスキャンして操作キーコードkey
[ ]を読み取る。操作キーが終了キー(例えばエンタ
ーキー)なら、変数char[dc]に終了コードen
dをセットする(B3、B4)。操作キーが文字キーな
らばその文字コードkey[key ID]をchar
[dc]にセットし、データカウンタdcをインクリメ
ントする(B5〜B7)。簡単な構成例では文字キーと
してテンキー(0〜9の数値入力キー)を使用できる。
あるいは、アルファベット等の文字キーを使用するよう
にしてもよい。
【0021】図7に第1の態様によるメロディ作成(メ
ロディ作成(1))のフローチャートを示す。C1でデ
ータポインタptrを文字コード列の先頭である“0”
に初期化する。 C2でスケールデータベースscal
e[ ]を用いて文字コードchar[ptr]をノー
ト番号に変換する。これは、スケールデータベースsc
ale[ ]上の選択スケール(例えばメジャースケー
ル)からchar[ptr]番目のスケール音をさがし
出すことによって行われる。例えば、ノート番号カウン
タとスケール音カウンタを用い、ノート番号を所定値に
初期化し、スケール音カウンタを“0”に初期化し、ス
ケールの先頭データ(図3の“C”の位置のデータ)か
らスケールの終りのデータ(図3の“B”のデータ)に
向けてスキャンし、その間、ノート番号カウンタを順次
インクリメントし、スケール音を見つけたら、スケール
音カウンタをインクリメントし、文字コードchar
[ptr]と比較する。なお、1オクターブ分のスケー
ルをみてもchar[ptr]番目のスケール音がみつ
からない場合には、スケールを再び先頭からサーチする
処理を繰り返すことによりchar[ptr]番目のス
ケール音をみつけ出して、対応するノート番号を得る。
【0022】C3でノート番号noteに対応する周波
数freqを求める。周波数freqは、 freq=basef×2(100×note/1200) で定められる。ここにbasefはnote=0に対応
する基準周波数である。freqは演算で直接求めても
よいし、指数変換テーブルを用いて求めてもよい。C4
でnoteの波形データを作成する。C5でデータポイ
ンタptrをインクリメントする。C6で処理終了(p
tr=dc)でなければC2に戻る。
【0023】図8に波形データ作成C4のフローD1〜
D4を示す。波形データは、周期関数を用いて作成され
る。図8では周期関数としてsineを用いているが、
他の任意の周期関数、例えば、矩形波や三角波でもよ
い。波形データ作成処理は周波数と音色情報に応じて波
形信号を出力する音源装置で行うようにしてもよい。D
2〜D4のループで作成される波形データの数は、音長
(秒)×fs(fsはサンプリング周波数)で与えられ
る。図8には音長の求め方を示していないが、予め初期
設定した値を用いてもよいし、あるいは、波形データ作
成C4の前処理として乱数発生器等により音長データを
得るようにしてもよい。あるいは、図2に示す音長デー
タベースdur[ ]からnoteの音長dur[no
te]を得るようにしてもよい。
【0024】図17に第1態様のメロディ作成(1)
(図7)の動作例を示す。メジャースケールの場合と全
音音階(ホールトーンスケール)の場合を示してある。
この動作例では入力される文字コードとして0〜9の数
字コードを使用している。この場合、音列の音域があま
り広くならず1オクターブか1オクターブ半程度に収ま
るので都合がよい。このように第1態様の音列合成装置
によれば、文字コードの列を入力するだけで音列(メロ
ディ)が生成される。
【0025】第2態様の音列合成装置によるメロディ作
成のフローをメロディ作成(2)として図9に示す。図
中、E1、E4〜E7は、メロディ作成(1)(図7)
のフローのC1、C3〜C6に対応している。異なる点
は、E2の基準データbasedを求める処理とE3の
ノート番号を求める処理である。基準データを求める処
理E2では、入力された文字コード列char[ ]の
なかの特定の要素である文字コードを基準データbas
etとして選択する。ノート番号を求める処理E3で
は、この基準データに対して基準の音高note_of
fsetを割り当て、この基準の音高をスケールの特定
の構成音(例えば主音)に対応づける。そして、入力文
字コード列の各文字コードと基準データとの差を算出
し、この差をスケールデータベースscale[ ]を
用いて音程(基準音高に対する音程)に変換し、この音
程を基準音高に加えて各文字コードの音高(ノート番
号)を求める。
【0026】基準データを求める処理E2のフローの例
を図10にF1〜F4で示す。ここでは、入力文字コー
ド列の最後の文字コード(エンドマークendより1つ
前にある文字コード)を基準データbasedとして選
択している(F2、F4)。ノート番号を求める処理E
3のフローの例を図11に示す。まずG1でノート番号
のカウンタcntを基準データに割り当てる基準音高の
ノート番号note_offsetにセットし、スケー
ル音のカウンタscntを“0”に初期化する。
【0027】入力文字コードchar[ptr]が基準
データbasedのときは(char[ptr]=ba
sed)、ノート番号noteとして基準音高note
_offset(例えば24)を割り当てる(G2、G
14)。入力文字コードの値char[ptr]が基準
データbasedより大きいとき(G3でYESのと
き)は次のようにしてノート番号noteを求める。ま
ずノート番号のカウンタcntをインクリメントし(G
4)、スケールデータベースscale[ ]から、こ
のノート番号に対応する音がスケール音かどうか、即
ち、 scale[scale_id×12+(cnt mo
d12)]=1 かどうかチェックする(G5)。ここにscale_i
dは選択されたスケールの番号である。
【0028】cntに対応する音がスケール音ならスケ
ール音カウンタをインクリメントする(G6)。G7で
入力文字コードと基準データとの差(char[pt
r]−based)を求め、スケール音カウンタsen
tの値がこの差の値に達したかどうかチェックする。達
してなければG4へ戻る。
【0029】達しているときは、そのときの(cnt−
note_offset)の値は、char[ptr]
に対して割り当てるべき音高(ノート番号)が基準音高
note_offsetに対して有する音程を表わして
いる。したがってこの音程(cnt−note_off
set)を基準音高note_offsetに加えるこ
とにより、文字コードchar[ptr]を変換した音
高(ノート番号)が得られる。 note=note_offset+cnt−note
_offset (note=cntとしてもよいが、(cnt−not
e_offset)が基準音高に対する音程であること
を示すためにこのようにした)。
【0030】このように、入力文字コード値char
[ptr]が基準データbasedより大きいときは、
両者の差(char[ptr]−based)を求め、
この差をスケールデータベースの選択スケール上で変換
して、音程(cnt−note_offset)を求
め、この音程に基準音高note_offsetを加え
ることによって文字コードchar[ptr]の音高n
oteを決定している。入力文字コード値char[p
tr]が基準データbasedより小さいとき(G3で
NOのとき)は次のようにして文字コードchar[p
tr]の音高noteを決定する。この場合は、G4の
ようにノート番号カウンタcntをインクリメントする
のではなく、デクリメントする(G6)。
【0031】cntに対応する音がスケール音かどうか
をチェックし、スケール音ならスケール音カウンタsc
ntをインクリメントする点(G10、G11)は、c
har[ptr]>basedの場合と同様である。G
12では、scnt=based−char[ptr]
かどうか、即ち、基準データと文字コードchar[p
tr]の差を求め、この差にスケール音カウンタscn
tが達したかどうかチェックする。達してなければG9
へ戻る。達していれば、そのときの−1×(note_
offset−cnt)の値が、音程、即ち、変換され
るべき音高noteが基準音高に対して有する音程を表
わしている。
【0032】したがって、 note=note_offset+(−1×(not
e_offset−cnt)) により、文字コードchar[ptr]に対する音高
(ノート番号)noteが決定される(G13)。した
がって、入力文字コードchar[ptr]が基準デー
タbasedより小さいときも、差(based−ch
ar[ptr])を求め、この差をスケールデータベー
スの選択スケール上で変換して音程(cnt−note
_offset)を求め、この音程に基準音高note
_offsetを加えて入力文字コードchar[pt
r]に対するノート番号noteを決定している。
【0033】図11のフローにおいては、基準データの
音高である基準音高note_offsetをスケール
データベース上のスケールの主音cに対応づけている
(note_offset=12の倍数にした場合)。
即ち、G5の式においてcnt=note_offse
t=12の倍数にしたとき、選択スケールscale_
idの最初のスケール音(主音)cが位置ぎめされる。
なお、基準音高note_offsetは12の倍数で
なくてもよく、それに対応するようにフローを変形する
ことは容易である。即ち、基準データに割り当てるべき
音高として任意の所望の音高を定めることができる。
【0034】第2態様の音列合成装置によれば、文字コ
ード列を入力するだけでメロディ(音列)が生成され
る。更に、入力文字コード列の特定の要素(例えば最後
の文字コード)を基準データとして、これをスケールの
特定の構成音(例えば主音)として基準音高を割り当て
て、入力文字コード列の変換音高列を基準音高によって
スケール上で相対化して決定しているので、音楽的に自
然な音高列を得ることが容易になる利点がある。
【0035】なお、図11のフローでは、文字コードc
har[ptr]が基準データbasedより大きいと
きはカウンタcntをインクリメントして基準音高より
高い音高を求め、基準データより小さいときはカウンタ
cntをデクリメントして基準音高より低い音高を求め
ているが、この逆でもよい。図9のメロディ作成(2)
を行う。第2態様の音列合成装置の動作例を図18に示
す。文字コードとしては0〜9の数字コードを使用し
た。最終文字コードは“2”で、これを基準データとし
てその音高(基準音高)をC2(ノート番号24)にし
た。スケールとしてはメジャースケールを使用した。
【0036】図12に第3態様のメロディ作成のフロー
をメロディ作成(3)として示す。このフローH1〜H
7は図9のメロディ作成(2)のフローE1〜E7に対
応しているが、波形データ作成処理H5で入力文字コー
ドから得た音高に対応づけた発音時間の処理を行ってい
る点が異なる。波形データ作成処理H5のフローチャー
トの一例を図13に波形データ作成(2)として示す。
図13のフローI1〜I8では、波形データ作成の際
に、図3に示すような音長データベースdur[ ]と
休符長データベースrest[ ]を使用する。ここ
に、参照符号100に示すように、音長durとは音の
発音中の時間であり休符長restとは発音後の休止時
間である。
【0037】I4に示すdur[note]は音長デー
タベースdur[ ]から読み取った、ノート番号no
teのピッチクラスに対応づけた音長データを表わして
いる。dur[note]×time_unitが音長
に対応する波形データの数である。発音中の波形データ
の値wave[ptr]は、周期関数としてsineを
用いた場合は、既に述べたように、wave[ptr]
=sin(2pi×ptr×freq/fs)で与えら
れる(I2)。したがってI1とループI2〜I4で音
が発音中のときの波形データを作成している。
【0038】一方、I8に示すrest[note]は
休符長データベースrest[ ]から読み取った、ノ
ート番号noteのピッチクラスに対応づけた休符長デ
ータを表わしている。休符長に相当する波形データの数
はrest[note]×time_unitで与えら
れる。ただし、休止中であるので波形データの値(振幅
値)としては“0”を入れる(I6)。したがって、I
5とループI6〜I8で休止中の波形データを作成して
いる。
【0039】波形データ作成処理H5のフローチャート
の別の例を図14に波形データ作成(3)として示す。
図14のフローJ1〜J12では、波形データ作成の際
に、図3に示すような音長データベースdur[ ]、
休符長データベースrest[ ]及びホールド時間デ
ータベースhold[ ]を使用する。参照符号200
に示すように、ホールド時間holdは発音中durに
おいて波形のレベルがホールドされる時間である。ここ
ではホールド後は波形のレベルが減衰して音がリリース
されるようにしている。J1とループJ2〜J8で発音
中の波形データを作成している。ホールド時間hold
[note]中の波形データの値は、 wave[ptr]=amp×sin(2pi×ptr
×freq/fs) で算出する(I3)。
【0040】ホールド時間後の発音中は、即ち、J5で
ptr≧hold[note]×time_unitが
成立し、J8でptr<dur[note]×time
_unitのときは、J3で求めたwave[ptr]
に係数relを乗じて、減衰された波形データ値wav
e[ptr]を得る(J6)とともにrel=rel×
Kにより係数relを更新する(J7)。発音後の休止
時間中の処理J9〜J12は図13の処理I5〜I8と
同様である。なお図13ではエンベロープ制御データと
して音高に対応づけたホールド時間データを使用してい
るが他のエンベロープ制御データを用いてもよい。
【0041】メロディ作成(3)を実行する第3態様の
音列合成装置の動作例を図19に示す。入力文字コード
として0〜9の数字コードを使用し、スケールとしてメ
ジャースケールを使用した。このように第3態様の音列
合成装置によれば、文字コードの列を入力するだけで音
列(メロディ)を生成できる。更に、文字コード列の特
定要素を基準データとしてスケール上に相対化して音高
列を生成するとともに生成した音高列を音高に対応する
リズムデータベース(音長データベース、休符長データ
ベース、エンベロープ制御データベース)によりリズム
に変換しているので、音楽的に自然な音列を容易に得る
ことができる。
【0042】さて、入力文字コードのとり得る値の範囲
(入力文字コードの種類の数)が大きいときは、入力文
字コードとから音高への変換を1対1対応で行うと、生
成される音高列の音域が広くなりすぎる。このような場
合、入力文字コードからスケール上の音高への変換を多
対1対応で行うと音高列の音域を適当な範囲にコントロ
ールできる。この原理に従って音高(ノート番号)を求
める処理のフローチャートを図15に示す。図15のフ
ローK1〜K14を図11のフローG1〜G14と比べ
てみると、K7とK12のところだけ違っていることが
わかる。
【0043】すなわち、K7では、(char[pt
r]−based)/rangeを求め、この値にスケ
ール音カウンタscntが達しているかどうかチェック
しており、K12では(based−char[pt
r])/rangeを求め、この値にスケール音カウン
タscntが達しているかどうかをチェックしている。
基準データbasedと文字コードchar[ptr]
との差をレンジデータrangeで圧縮することによ
り、生成される音高(ノート番号note)の音域がコ
ントロールされる。(char[ptr]−base
d)/rangeまたは(based−char[pt
r])/rangeの圧縮演算の代りに、(char
[ptr]−based)mod RANGEまたは
(based−char[ptr])mod RANG
Eのようなモジュロによる圧縮演算を行ってもよい。
【0044】なお、図15のフローは、基準データba
sedを用いる方式であるが、基準データを用いなくて
もよい。その場合、例えば、char[ptr]mod
RANGEの値をスケール音カウンタscntと比較
することによって文字コードchar[ptr]を音高
noteに変換できる。
【0045】第4態様の音列合成装置によるメロディ作
成のフローチャートをメロディ作成(4)として図16
に示す。図16のフローL1〜L8では、入力文字コー
ド列から音列への変換を所定回数繰り返すようにし(L
8参照)、変換の都度、基準データを変更している。即
ち、基準データを求める処理L2では、実行の都度、カ
ウンタcntの値に対応する入力文字コードを基準デー
タとして選択することにより、基準データを変更してい
る(例えばcnt=0なら最後の入力文字コード、cn
t=1なら最後より1つ前の入力文字コードを基準デー
タとする)。
【0046】第4態様の音列合成装置によれば、上述し
た効果のほか、同じ入力文字列から複数の異なる音列を
得ることができる利点がある。以上で実施の形態の説明
を終えるが、この発明の範囲内で種々の変形が可能であ
る。
【0047】
【発明の効果】この発明によれば、音列合成装置の入力
手段として文字コード列を入力する手段を用い、入力文
字コード列をスケール記憶手段を介してスケール音の音
高列に変換しているので、ユーザーに音楽知識は全く必
要なく、きわめて簡単な入力操作から音列を合成するこ
とができる。
【図面の簡単な説明】
【図1】この発明による音列合成装置の機能ブロック
図。
【図2】音列合成装置のハードウェア構成例を示すブロ
ック図。
【図3】音列合成装置が使用するデータベースを示す
図。
【図4】音列合成装置が使用する変数を示す図。
【図5】音列合成装置の全体動作を表わすメインルーチ
ンのフローチャート。
【図6】入力処理のフローチャート。
【図7】メロディ作成(1)のフローチャート。
【図8】波形データ作成のフローチャート。
【図9】メロディ作成(2)のフローチャート。
【図10】基準データ選択のフローチャート。
【図11】ノート番号を求める処理のフローチャート。
【図12】メロディ作成(3)のフローチャート。
【図13】波形データ作成(2)のフローチャート。
【図14】波形データ作成(3)のフローチャート。
【図15】ノート番号を求める処理(2)のフローチャ
ート。
【図16】メロディ作成(4)のフローチャート。
【図17】メロディ作成(1)の動作例を示す図。
【図18】メロディ作成(2)の動作例を示す図。
【図19】メロディ作成(3)の動作例を示す図。
【符号の説明】
1 CPU 2 ROM 4 入力装置 10 文字コード列入力部 20 音列生成部 30 音高列生成部 31 基準データ選択部 32 差算出・変形部 40 スケールデータベース 50 リズム生成部 60 リズムデータベース 61 音長・休符長データベース 62 エンベロープ制御データベース 70 波形生成部

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】文字コード列を入力する文字コード列入力
    手段と、 スケールのピッチクラスセットを記憶するスケール記憶
    手段と、 入力された文字コード列の各文字コードをスケール記憶
    手段を用いてスケール音の音高に変換して音列を生成す
    る音列生成手段と、 を有することを特徴とする音列合成装置。
  2. 【請求項2】文字コード列を入力する文字コード列入力
    手段と、 スケールのピッチクラスセットを記憶するスケール記憶
    手段と、 入力された文字コード列のなかの特定要素である文字コ
    ードを基準データとして選択する基準データ選択手段
    と、 前記基準データに対して基準の音高を割り当てるととも
    に入力された文字コード列の各文字コードを前記基準の
    音高と前記スケール記憶手段とを用いてスケール音の音
    高に変換して音列を生成する音列生成手段と、 を有することを特徴とする音列合成装置。
  3. 【請求項3】文字コード列を入力する文字コード列入力
    手段と、 スケールのピッチクラスセットを記憶するスケール記憶
    手段と、 各音高に割り当てるべき音長データを記憶する音長デー
    タ記憶手段と、 入力された文字コード列から音列を生成する音列生成手
    段であって、(a)入力された文字コード列の各文字コ
    ードを前記スケール記憶手段を用いてスケール音の音高
    に変換する音高変換手段と、(b)変換された音高を前
    記音長データ記憶手段を用いて音長に変換する音長変換
    手段と、 から成る音列生成手段と、 を有することを特徴とする音列合成装置。
  4. 【請求項4】文字コード列を入力する文字コード列入力
    手段と、 スケールのピッチクラスセットを記憶するスケール記憶
    手段と、 各音高に割り当てるべき音長と休符長のデータを記憶す
    る音長・休符長記憶手段と、 入力された文字コード列から音列を生成する音列生成手
    段であって、(a)入力された文字コード列の各文字コ
    ードを前記スケール記憶手段を用いてスケール音の音高
    に変換することにより、音列の音高列を生成する音高列
    生成手段と、 (b)変換された音高を前記音長・休符長記憶手段を用
    いて音長とそれに続く休符長に変換することにより音列
    のリズムを生成するリズム生成手段と、から成る音列生
    成手段と、 を有することを特徴とする音列合成装置。
  5. 【請求項5】文字コード列を入力する文字コード列入力
    手段と、 スケールのピッチクラスセットを記憶するスケール記憶
    手段と、 各音高に割り当てるべき音長データを記憶する音長デー
    タ記憶手段と、 各音高に割り当てるべきエンベロープ制御データを記憶
    するエンベロープ制御データ記憶手段と、 入力された文字コード列から音列を生成する音列生成手
    段であって、(a)入力された文字コード列の各文字コ
    ードを前記スケール記憶手段を用いてスケール音の音高
    に変換する音高変換手段と、(b)変換された音高を前
    記音長データ記憶手段を用いて音長に変換する音長変換
    手段と、(c)変換された音高を前記エンベロープ制御
    データ記憶手段を用いてエンベロープ制御データに変換
    するエンベロープ変換手段と、(d)変換された音高、
    音長及びエンベロープ制御データに従う波形を生成する
    波形生成手段と、 から成る音列生成手段と、 を有することを特徴とする音列合成装置。
  6. 【請求項6】文字コード列を入力する文字コード列入力
    手段と、 スケールのピッチクラスセットを記憶するスケール記憶
    手段と、 入力された文字コード列から音列を生成する音列生成手
    段であって、(a)入力された文字コード列のなかの特
    定要素である文字コードを基準データとして選択する基
    準データ選択手段と、(b)前記基準データに対して基
    準の音高を割り当てる基準音高割当手段と、(c)入力
    された文字コード列の各文字コードと前記基準データと
    の差を算出する差算出手段と、(d)算出された差を前
    記スケール記憶手段を用いて変形して音程を算出する音
    程算出手段と、(e)前記基準音高と前記音程とから各
    文字コードの音高を決定する音高決定手段と、 から成る音列生成手段と、 を有することを特徴とする音列合成装置。
  7. 【請求項7】文字コード列を入力する文字コード列入力
    手段と、 スケールのピッチクラスセットを記憶するスケール記憶
    手段と、 入力された文字コード列から音列を生成する音列生成手
    段であって、(a)入力された文字コード列のなかの特
    定要素である文字コードを基準データとして選択する基
    準データ選択手段と、(b)前記基準データに対して基
    準の音高を割り当てる基準音高割当手段と、(c)入力
    された文字コード列の各文字コードと前記基準データと
    の差を算出する差算出手段と、(d)算出された差を前
    記スケール記憶手段を用いて変形して音程を算出する音
    程算出手段と、(e)前記基準音高と前記音程とから各
    文字コードの音高を決定する音高決定手段と、(f)前
    記基準データ選択手段、基準音高割当手段、差算出手
    段、音程算出手段及び音高決定手段による音列の生成動
    作を所定の回数繰り返し、繰り返しの都度、前記基準デ
    ータ選択手段が選択する基準データを変更する繰り返し
    制御手段と、 から成る音列生成手段と、 を有することを特徴とする音列合成装置。
JP06921998A 1998-03-05 1998-03-05 音列合成装置 Expired - Fee Related JP3651241B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP06921998A JP3651241B2 (ja) 1998-03-05 1998-03-05 音列合成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP06921998A JP3651241B2 (ja) 1998-03-05 1998-03-05 音列合成装置

Publications (2)

Publication Number Publication Date
JPH11249680A true JPH11249680A (ja) 1999-09-17
JP3651241B2 JP3651241B2 (ja) 2005-05-25

Family

ID=13396403

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06921998A Expired - Fee Related JP3651241B2 (ja) 1998-03-05 1998-03-05 音列合成装置

Country Status (1)

Country Link
JP (1) JP3651241B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2003081572A1 (ja) * 2002-03-25 2005-08-11 芳彦 佐野 表現生成方法,表現生成装置,表現生成システム
JP2014224976A (ja) * 2013-04-15 2014-12-04 清 宮浦 音声生成装置、音声生成方法及びプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2003081572A1 (ja) * 2002-03-25 2005-08-11 芳彦 佐野 表現生成方法,表現生成装置,表現生成システム
JP4625638B2 (ja) * 2002-03-25 2011-02-02 芳彦 佐野 表現生成方法,表現生成装置,表現生成システム
JP2014224976A (ja) * 2013-04-15 2014-12-04 清 宮浦 音声生成装置、音声生成方法及びプログラム
WO2015105142A1 (ja) * 2014-01-09 2015-07-16 佐藤勇二 音声生成装置、音声生成方法及びプログラム

Also Published As

Publication number Publication date
JP3651241B2 (ja) 2005-05-25

Similar Documents

Publication Publication Date Title
JP3812328B2 (ja) 自動伴奏パターン発生装置及び方法
US6297439B1 (en) System and method for automatic music generation using a neural network architecture
JP3707364B2 (ja) 自動作曲装置、方法及び記録媒体
US6294720B1 (en) Apparatus and method for creating melody and rhythm by extracting characteristic features from given motif
US6100462A (en) Apparatus and method for generating melody
JP3454140B2 (ja) コンピュータ用キーボードを楽器用鍵盤として使用する装置、方法、及びプログラムを記録した媒体
JP3906997B2 (ja) 演奏補助装置、入力音変換装置及びそれらのプログラム
JPH10187157A (ja) 自動演奏装置
JP3651241B2 (ja) 音列合成装置
US4178825A (en) Musical tone synthesizer for generating a marimba effect
JPS6256517B2 (ja)
JP3234593B2 (ja) 電子楽器
JP3439312B2 (ja) 電子楽器のピッチ制御装置
JP3704901B2 (ja) 自動演奏装置、自動演奏方法及び記録媒体
JP2623955B2 (ja) 電子楽器
JP2002032079A (ja) 自動作曲装置及び方法並びに記憶媒体
JP3933070B2 (ja) アルペジオ生成装置及びプログラム
JP3158918B2 (ja) 自動伴奏装置
JPS6213677B2 (ja)
JPH06337677A (ja) 自動伴奏装置
JPH06318074A (ja) 楽音データ入力装置
JPS6328473Y2 (ja)
JPH06222764A (ja) 電子楽器
JPH11119780A (ja) 楽音合成装置
JP5659501B2 (ja) 電子音楽装置及びプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040921

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041006

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050214

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090304

Year of fee payment: 4

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100304

Year of fee payment: 5

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110304

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110304

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120304

Year of fee payment: 7

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130304

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130304

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140304

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees