JPH1165560A - コンピュータによる採譜装置 - Google Patents

コンピュータによる採譜装置

Info

Publication number
JPH1165560A
JPH1165560A JP25122697A JP25122697A JPH1165560A JP H1165560 A JPH1165560 A JP H1165560A JP 25122697 A JP25122697 A JP 25122697A JP 25122697 A JP25122697 A JP 25122697A JP H1165560 A JPH1165560 A JP H1165560A
Authority
JP
Japan
Prior art keywords
frequency
substituted
process proceeds
execution step
smaller
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.)
Pending
Application number
JP25122697A
Other languages
English (en)
Inventor
Izuru Haruhara
出 春原
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.)
GIATSUTO KK
Original Assignee
GIATSUTO KK
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 GIATSUTO KK filed Critical GIATSUTO KK
Priority to JP25122697A priority Critical patent/JPH1165560A/ja
Publication of JPH1165560A publication Critical patent/JPH1165560A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Auxiliary Devices For Music (AREA)

Abstract

(57)【要約】 【目的】 頭に浮かんだ曲を音にするだけで自動的に譜
面を作成する。 【構成】 音を物理信号に変換する手段と、変換された
物理信号を記憶する手段と、記憶された物理信号をある
時間窓で周波数に変換する手段と、得られた周波数の中
から基本波の周波数を決定する手段と、基本波の周波数
を平均率音階のピッチに変換する手段と、得られたピッ
チとその時間を記憶する手段とを設ける。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータによる採
譜装置に関するものである。
【0002】
【従来の技術】従来音楽用キーボード等から音楽を入力
し、それを譜面に変換する装置、および浮かんだ曲をを
そのまま録音再生する手段もあった。
【0003】
【発明が解決しようとする課題】しかしながら作曲とい
う観点で考えると、頭に曲が浮かんでから声に出したり
口笛を吹いてから、改めて音楽用キーボード等を使用す
るのが普通である。音楽用キーボード等になじんでいな
いと、せっかく頭に曲が浮かんでも、譜面にすることは
難しかった。また頭に浮かんだ曲をそのまま録音再生す
る方法では、譜面が無いので編曲などの応用が難しかっ
た。
【0004】そこで、音楽用キーボード等を用いなくて
も、頭に浮かんだ曲を音にするだけで自動的に譜面を作
成できる装置が望まれる。
【0005】
【課題を解決するための手段】上記課題を解決するため
に、本発明コンピュータによる採譜装置は、音を物理信
号に変換する手段、変換された物理信号を記憶する手
段、記憶された物理信号をある時間窓で周波数に変換す
る手段、得られた周波数の中から基本波の周波数を決定
する手段、基本波の周波数を平均率音階のピッチに変換
する手段、得られたピッチとその時間を記憶する手段と
を具備する。
【0006】
【作用】本発明によれば頭に浮かんだ曲を音にするだけ
で譜面を作成することができる。
【0007】
【実施例】図1は本発明コンピュータによる採譜装置の
外観を示しており、1はコンピュータ本体、2は表示装
置、3はコンピュータ用キーボード、4はマイクロフォ
ン、5はスピーカーを示している。
【0008】図2は1のコンピュータ本体のさらに内部
の構成をブロックであらわしたものであり、6はCPU
およびタイマー、7はメモリー、8は2次記憶装置、9
はキーボードおよびマウスのインターフェース、10は
アドレスおよびデータバス、11はディスプレイインタ
ーフェースおよびビデオメモリー、12は音声とMID
I(Musical Instrument Digi
tal Interface)およびスピーカーのイン
ターフェースを示している。
【0009】図3は7のメモリーの中に最初から確保さ
れるバッファメモリーおよびグローバル変数を示し、1
3は12の音声インターフェースからの整数データを蓄
える2次元配列(bN×bSz)のバッファメモリーg
V、14および15は整数のグローバル変数giおよび
gj、16はブール値のグローバル変数giend、1
7および18はピッチの整数データおよび大きさという
パラメータの実数データを蓄える1次元配列(bN−c
Sz/bSz+1)のバッファメモリーgPtおよびg
Pw、19は各ピッチの平均の大きさの実数データを記
憶するグローバル変数gavep、20および21は最
初に時間軸、最終的に周波数軸の実数値データを蓄える
1次元配列(cSz)のバッファメモリーgXおよびg
Y、22および23は周波数軸のピークを見つけるため
に用意した実数データの1次元配列(cSz)のバッフ
ァメモリーgZ0およびgZ1、24は基本波の周波数
の実数データを記憶するグローバル変数gfb、25は
基本波の大きさというパラメータの実数データを記憶す
るグローバル変数gpower、26は決定したピッチ
の整数データを記憶するグローバル変数gpitch、
27および28はピークのある周波数とそのピークの大
きさの実数データを蓄える1次元配列(PEAKS用意
しpNだけ有効)のバッファメモリーgFiおよびgP
kを示している。
【0010】なおbNは13のgVのバッファメモリー
の本数、bSzは13のgVのバッファメモリー1本当
たりのデータサイズ、cSzは20のgXおよび21の
gYのバッファメモリーのサイズ、PEAKSは最初に
用意するピーク値の数、pNは演算した結果決定したピ
ーク値の数のグローバル変数である。ここでcSzはb
Szの整数倍でしかも2の累乗であることを仮定してい
るので、周波数およびピッチを求める演算はgVのうち
(cSz/bSz)本ずつのデータを用いることにな
る。しかもgVを1本ずつずらして演算するのでサンプ
リング周波数をSFREQとすると(bSz/SFRE
Q)の間隔でピッチおよび大きさが(bN−cSz/b
Sz+1)個求められる。
【0011】図4は7のメモリーの中に確保されるバッ
ファメモリーおよびグローバル変数を示し、29はMI
DIのデータを出力するために、イベントという構造で
ダイナミックに確保される1次元配列(eSz)のバッ
ファメモリーgE、30は整数のグローバル変数gti
meである。
【0012】イベントの内部構造はまずそのイベントの
音楽的時間を示す整数の変数tk、音のONとかOFF
とかを示す整数の変数tp、音のピッチを示す0から1
27までの整数の変数d1、音の大きさを示す0から1
27までの整数の変数d2からなる。なおeSzは配列
の大きさを示すグローバル変数である。これにより従来
の譜面より格段に細かい情報を納めることができ、また
従来の譜面に変更することも容易である。
【0013】tkについてもう少し詳しく説明すると、
1分間の4分音符の数をTEMPOとし、4分音符1つ
の音楽的時間をDIVとし、ピッチの演算の時間間隔を
Tとすれば、イベントの音楽的時間tkは(T×DIV
×TEMPO/60)の整数倍となる。つまり本システ
ムでは演算の時間間隔があるので、音楽的時間に制限が
ある。Tを(bSz×SFREQ)とすれば、tkは
(DIV×TEMPO×bSz/60/SFREQ)の
整数倍となる。MIDIに出力する際、実際の時間を求
めるには(tk×60/TEMPO/DIV)秒とな
る。
【0014】図5は音声入力のフローチャートを示し、
100は音声入力のメインルーチン、105は音声入力
の割込ルーチンである。
【0015】図6の150は音声データを周波数演算の
バッファにコピーし、最終的にはMIDIのイベントデ
ータに変換するまでのフローチャートである。kとiと
jおよびpitは整数のローカル変数であり、powと
av4は実数のローカル変数である。200のForm
antと500のMakeEventはサブルーチンで
ある。
【0016】図7と図8はサブルーチン200のFor
mantのフローチャートである。iとjとkとmおよ
びnは整数のローカル変数であり、fiとfjとpiと
ceilingとfloorおよびratは実数のロー
カル変数である。fは実数データを蓄える1次元配列
(DEGREE+1)のローカルのバッファメモリーで
ある。250のFftと300のPedestalと3
50のFdpkおよび400のF2pはサブルーチンで
ある。さらにSFREQは音声データのサンプリング周
波数であり、DEGREEは計算すべき高調波の次数の
上限であり、TOLMAXは平均率の境界値を決める上
限であってここでは2の12分の1乗である1.059
463094359であり、TOLMINは平均率の境
界値を決める下限であってここでは2のマイナス12分
の1乗である0.9438743126817としてい
る。Pow()は最初の引数へ2番目の引数の値の累乗
を行う関数である。したがって最初の引数が1.0を越
え2番目の引数が1.0未満だと結果は最初の引数より
小さくなり、最初の引数が1.0未満で2番目の引数が
1.0未満だと結果は最初の引数より大きくなる。
【0017】図9はサブルーチン250のFftのフロ
ーチャートである。iとjとkとmとnおよびdelt
aは整数のローカル変数であり、cとsとsclとar
gとt1およびt2は実数のローカル変数である。Co
s()は引数の余弦を返す関数であり、Sin()は引
数の正弦を返す関数である。PI2は6.283185
30718である。
【0018】図10はサブルーチン300のPedes
talのフローチャートである。iは整数のローカル変
数であり、powersおよびlevelは実数のロー
カル変数である。Sqrt()は引数の平方根を返す関
数であり、Max()は引数の中で大きい方を返す関数
である。PEDは雑音成分と有効成分を分離するために
経験から得られた任意の数である。
【0019】図11はサブルーチン350のFdpkの
フローチャートである。bIncはブール値のローカル
変数であり、kは整数値のローカル変数であり、ymと
ypとpjmとpjとpjpとaおよびbは実数値のロ
ーカル変数である。TRUEとFALSEはブール値で
ある。SFREQはサンプリング周波数であり、PEA
KSは最初に用意するピークの数である。
【0020】図12はサブルーチン400のF2pのフ
ローチャートである。octおよびpitは整数のロー
カル変数であり、fは実数のローカル変数である。MT
P0からMTP12は隣接する平均値のピッチの中心と
中心との中間の値で、MTP0とMTP12は2倍すな
わち1オクターブの関係にあり、MTP1はMTP0に
2の12分の1乗を乗じた値である。ちなみにMTP0
はC4(中央C、ハ)の周波数261.6255653
006Hzに2のマイナス24分の1乗を乗じた値で2
54.1775933119Hz、以後MTP1は26
9.291779527Hz、MTP2は285.30
47020232Hz、MTP3は302.26980
24408Hz、MTP4は320.24370022
53Hz、MTP5は339.2863815898H
z,MTP6は359.4613997131Hz、M
TP7は380.8360868427Hz、MTP8
は403.48177901Hz、MTP9は427.
4740541076Hz、MTP10は452.89
29841231Hz、MTP11は479.8234
023727Hz、MTP12は508.355186
6238Hzである。
【0021】図13はサブルーチン500のMakeE
ventのフローチャートである。pitとiとjとa
およびbは整数のローカル変数であり、coおよびav
4は実数のローカル変数である。DIVは4分音符の音
楽的時間を示す任意の数であり、TEMPOは1分間の
4分音符の数を示す任意の数であり、SFREQはサン
プリング周波数であり、ONとOFFはイベントのタイ
プを示す値である。
【0022】図14はMIDI出力のフローチャートで
ある。550はMIDI出力のメインルーチンであり、
551はMIDI出力の割込ルーチンである。iおよび
tkTは整数のローカル変数であり、evはイベントの
構造を持つローカル変数である。
【0023】つぎに3のキーボード等を使って音声入力
のコマンドをシステムに送ったとき、システムの中でど
んなことが行われるのか、フローチャートを使って説明
する。
【0024】まず図5の100の音声入力メインルーチ
ンにはいり、101の実行ステップで0をグローバル変
数のgiおよびgjに代入し、FALSEをグローバル
変数のgiendに代入し、102の実行ステップに進
む。102の実行ステップでは12の音声インターフェ
ースにサンプリング周波数(SFREQ)やサイズ(b
N×bSz)などを設定してから入力をスタートさせ、
103の判断ステップに進む。103の判断ステップで
ひたすら16のgiendがTRUEになるのを待ち、
TRUEになると104の終了ステップに進み音声入力
は終了となる。一方音声インターフェースでは入力デー
タがあると割込が発生し、105の入力割込のルーチン
にはいる。106の判断ステップでデータがあるかどう
かチェックしたのち、データがあれば107の判断ステ
ップに進み、データが無ければ109のリターンステッ
プに進み入力割込のルーチンはひとまず終了となる。1
07の判断ステップではgjがbSzより小さいかどう
かチェックし、小さければ108の実行ステップに進
み、小さくなければ110の実行ステップに進む。10
8の実行ステップではgiとgjで指定される位置のg
Vのデータとして音声データを入力する。その後gj自
身を1増加させる。そして再び106の判断ステップに
進む。110の実行ステップでは0をgjに代入し、g
i自身を1増加させ、111の判断ステップに進む。1
11の判断ステップではgiがgVのバッファの本数b
Nより小さいかどうか判断し、小さければ106の判断
ステップに戻り、小さくなければ112の実行ステップ
に進む。112の実行ステップではgiendをTRU
Eにし、113のリターンステップに進み、そこで入力
割込のルーチンはすべて終了となる。これでgVにはサ
ンプリング周波数SFREQごとのデータが入力され
る。
【0025】つぎに3のキーボード等を使って音声入力
データをMIDIに出力できる形式に変換するコマンド
をシステムに送ったとき、システムの中でどんなことが
行われるのか説明する。
【0026】まず図6の150の変換ルーチンにはい
り、151の実行ステップで0をローカル変数kに代入
し、0.0をローカル変数powに代入し、152の実
行ステップに進む。152の実行ステップでは0をロー
カル変数iに代入し、153の判断ステップに進む。1
53の判断ステップではiが(cSz/bSz)より小
さいかどうか判断し、小さければ154の実行ステップ
に進み、小さくなければサブルーチン200のForm
antを呼び出す。154の実行ステップでは0をロー
カル変数jに代入し、155の判断ステップに進む。1
55の判断ステップではjがbSzより小さいかどうか
判断し、小さければ157の実行ステップに進み、小さ
くなければ156の実行ステップに進む。157の実行
ステップでは(k+i)本目のjの位置で指定されるg
Vを(i×bSz+j)で指定される位置のgXに代入
し、0.0を(i×bSz+j)で指定される位置のg
Yに代入し、j自身を1増加させ、155の判断ステッ
プに戻る。156の実行ステップではi自身を1増加さ
せ、153の判断ステップに戻る。サブルーチン200
のFormantに進むと、この中でgXとgYのデー
タを周波数に変換してからピークの周波数を検出し、そ
れを元に基本波の周波数を求め、量子化してピッチに変
換し(詳細は後述する)、158の実行ステップに進
む。158の実行ステップではgpitchをkで指定
される位置のgPtに代入し、gpowerをkで指定
される位置のgPwに代入し、pow自身をgpowe
rの値だけ増加させ、k自身を1増加させ、159の判
断ステップに進む。159の判断ステップではkが(b
N−cSz/bSz)より大きいことを判断し、大きけ
れば160の実行ステップに進み、大きくなければ15
2の実行ステップに戻る。160の実行ステップでは
(pow/k)を19のgavepに代入し、(gav
ep/4)をローカル変数av4に代入し、0をpit
とiおよびグローバル変数のeSzに代入し、161の
判断ステップに進む。161の判断ステップではiがk
より小さいかどうか判断し、小さければ162の判断ス
テップに進み、小さくなければ170の判断ステップに
進む。162の判断ステップではpitが0かどうか判
断し、0ならば165の判断ステップに進み、0でなけ
れば163の判断ステップに進む。163の判断ステッ
プではiで指定される位置のgPwがav4より小さい
かどうか判断し、小さければ167の実行ステップに進
み、小さくなければ164の判断ステップに進む。16
7の実行ステップでは0をpitに代入し、eSz自身
を1増加させ、169の実行ステップに進む。164の
判断ステップではiで指定される位置のgPtがpit
と等しいかどうか判断し、等しければ169の実行ステ
ップに進み、等しくなければ166の実行ステップに進
む。166の実行ステップではiで指定される位置のg
Ptをpitに代入し、eSz自身を2増加させる。1
65の判断ステップではiで指定される位置のgPwが
av4より小さいかどうか判断し、小さければ169の
実行ステップに進み、小さくなければ168の実行ステ
ップに進む。168の実行ステップではiで指定される
位置のgPtをpitに代入し、eSz自身を1増加さ
せ、169の実行ステップに進む。169の実行ステッ
プではi自身を1増加させ、161の判断ステップに戻
る。170の判断ステップではpitが0かどうか判断
し、0ならばサブルーチン500のMakeEvent
に進み、0でなければ171の実行ステップに進む。1
71の実行ステップではeSz自身を1増加させ、サブ
ルーチン500のMakeEventに進む。サブルー
チン500のMakeEventではgPtおよびgP
wなどからイベントの構造を持つデータを作成してgE
に格納し(詳細は後述する)、172の終了ステップに
進む。172の終了ステップで変換ルーチンはすべて終
了となる。
【0027】ステップ151から157まではgVのデ
ータをgXに転送する作業であり、gVの(cSz/b
Sz)本のデータをgXに転送している。gVのデータ
は最初と最後を除いて(cSz/bSz)回使われてい
るが、これは請求項2の内容を具体的に示したものであ
る。周波数分解能は(SFREQ/cSz)であらわさ
れ、低音での平均率のピッチの隣との差がわかっている
ので変えることは難しいが、時間分解能は同じデータを
ずらしながら複数回使うことで上げることができる。こ
こでは時間分解能は(bSz/SFREQ)となる。ス
テップ158ではサブルーチン200のFormant
の結果得られたgpitchをgPtに代入し、gpo
werをgPwに代入し、さらにgpowerをpow
に累積する。ステップ160でkは演算の回数(bN−
cSz/bSz+1)になっているので、powに蓄積
された全大きさをkで割って平均値を求め、gavep
に代入する。さらに平均値の4分の1をしきい値av4
に代入する。ステップ161から171までは、同じピ
ッチが連続したときとか、大きさが小さいときの有効で
ないデータを圧縮し、有効なイベントの数がどのくらい
あるか見積もるのだが、iで指定される位置のgPwが
av4より小さくないとき、ONのイベントがあるとし
てeSz自身を1増加させ、iで指定される位置のgP
wがav4より小さくなると、OFFのイベントがある
としてeSz自身を1増加させる。同じピッチが続くと
きは何もせず、あるピッチがON状態のとき異なるピッ
チになると、OFFとONのイベントがあるとして、e
Sz自身を2増加させる。ON状態のまま終わったとき
はOFFのイベントがあるとして、eSz自身を1増加
させる。この結果をサブルーチン500のMakeEv
entに渡し、返ってくると変換のルーチンは終了とな
る。これは請求項5の内容を具体的にしたものである。
以上のプロセスで得られたイベントの配列は容易に編集
や記憶および再生が可能であり、従来の譜面にも変換可
能であり、請求項1の内容が達成される。
【0028】サブルーチン200のFormantは図
7と図8のフローチャートで説明する。サブルーチン2
50のFftでは周波数間引き型で基数2のインプレイ
ス型高速フーリエ変換と呼ばれる方法で時間領域のデー
タを周波数領域のデータに変換し(詳細は後述する)、
サブルーチン300のPedestalに進む。サブル
ーチン300のPedestalでは各周波数の大きさ
の絶対値を求め、さらに絶対値の小さい周波数のデータ
をカットしたデータを作成し(詳細は後述する)、サブ
ルーチン350のFdpkに進む。サブルーチン350
のFdpkでは各周波数成分の絶対値からピークになっ
ている周波数を求め(詳細は後述する)、201の実行
ステップに進む。201の実行ステップでは0.0をグ
ローバル変数gpowerおよびグローバル変数gfb
に代入し、0をローカル変数iに代入し、202の判断
ステップに進む。202の判断ステップではピーク値の
数を示すグローバル変数pNが0かどうかを判断し、0
ならば203の実行ステップへ進み、0でないならば2
04の判断ステップへ進む。203の実行ステップでは
ピークが無かったということで0をグローバル変数gp
itchに代入し、209のリターンステップへ進む。
204の判断ステップではピーク値の数pNが1かどう
かを判断し、1ならば206の実行ステップに進み、1
でないならば207の判断ステップに進む。206の実
行ステップではgFiの先頭の値をgfbに代入し、g
Pkの先頭の値をgpowerに代入し、サブルーチン
400のF2pへ進む。207の判断ステップではiが
pNより小さいかどうか判断し、小さければ208の実
行ステップへ進み、小さくなければサブルーチン400
のF2pへ進む。208の実行ステップではiで指定さ
れる位置のgFiをローカル変数fiに代入し、iで指
定される位置のgPkをローカル変数piに代入し、1
をローカル変数mに代入し、0をローカル変数nに代入
し、(i+1)をローカル変数jに代入し、TOLMA
Xをローカル変数ceilingに代入し、TOLMI
Nをローカル変数floorに代入し、211の判断ス
テップへ進む。サブルーチン400のF2pでは基本波
の周波数を量子化して平均率のピッチへ変換し(詳細は
後述する)、209のリターンステップに進む。209
のリターンステップでサブルーチン200は終了となり
元のルーチンへ戻る。211の判断ステップではjがp
Nより小さいかどうか判断し、小さければ212の実行
ステップへ進み、小さくなければ217の結合子Dを介
して225の判断ステップへ進む。212の実行ステッ
プではjで指定される位置のgFiをローカル変数fj
に代入し、213の判断ステップに進む。213の判断
ステップではfjがナイキスト周波数である(SFRE
Q/2)より大きいかどうか判断し、大きければ216
の結合子Cを介して218の実行ステップへ進み、大き
くなければ217の結合子Dを介して225の判断ステ
ップへ進む。218の実行ステップでは(m+1)をロ
ーカル変数kに代入し、219の判断ステップへ進む。
219の判断ステップでは計算すべき高調波の次数の上
限DEGREEより大きくないかどうか判断し、大きく
なければ220の実行ステップへ進み、大きければ21
5の結合子Bを介して210の実行ステップへ進む。2
20の実行ステップでは(fj/fi/k)をローカル
変数ratに代入し、221の判断ステップに進む。2
21の判断ステップではratがceilingより小
さくないかどうか判断し、小さくなければ222の実行
ステップへ進み、小さければ223の判断ステップへ進
む。222の実行ステップではk自身を1増加し、21
9の判断ステップへ戻る。223の判断ステップではr
atがfloorより小さくないかどうか判断し、小さ
くなければ224の実行ステップへ進み、小さければ2
15の結合子Bを介して210の実行ステップへ進む。
224の実行ステップでは((fi×m+fj/k)/
(m+1)をfiに代入し、pi自身をjで指定される
位置のgPkだけ増加し、fjをkで指定される位置の
ローカルのバッファメモリーfに代入し、kをnに代入
し、関数Powによりfloorの0.7乗の結果をf
loorに代入し、関数Powによりceilingの
0.7乗の結果をceilingに代入し、m自身を1
増加させ、215の結合子Bを介して210の実行ステ
ップへ進む。210の実行ステップではj自身を1増加
させ、211の判断ステップへ戻る。225の判断ステ
ップではpiがgpowerより大きいかどうか判断
し、大きければ226の判断ステップへ進み、大きくな
ければ214の結合子Aを介して205の実行ステップ
へ進む。226の判断ステップではgfbが0.0より
大きいかどうか判断し、大きければ227の判断ステッ
プへ進み、大きくなければ234の実行ステップへ進
む。227の判断ステップではnが0かどうか判断し、
0ならば229の実行ステップへ進み、0でなければ2
28の実行ステップへ進む。228の実行ステップでは
(nで指定される位置のf/n/gfb/2)をrat
に代入し、230の判断ステップへ進む。229の実行
ステップでは(fi/gfb/2)をratに代入し、
230の判断ステップへ進む。230の判断ステップで
はratがTOLMINより小さくないかどうか判断
し、小さくなければ231の判断ステップへ進み、小さ
ければ234の実行ステップへ進む。231の判断ステ
ップではratがTOLMAXより小さいかどうか判断
し、小さければ232の判断ステップへ進み、小さくな
ければ234の実行ステップへ進む。232の判断ステ
ップではgpowerが(pi/2)より大きいかどう
か判断し、大きければ233の結合子Eを介してサブル
ーチン400のF2pへ進み、大きくなければ234の
実行ステップへ進む。234の実行ステップではpiを
gpowerに代入し、235の判断ステップへ進む。
235の判断ステップではnが0かどうか判断し、0な
らば237の実行ステップへ進み、0でなければ236
の実行ステップへ進む。236の実行ステップでは(n
で指定される位置のf/n)をgfbに代入し、214
の結合子Aを介して205の実行ステップへ進む。23
7の実行ステップではfiをgfbに代入し、214の
結合子Aを介して205の実行ステップへ進む。205
の実行ステップではi自身を1増加させ、207の判断
ステップへ戻る。
【0029】ステップ201の前までのサブルーチンで
gFiおよびgPkには有効なデータの数がpN用意さ
れ、それをもとに基本波の周波数であるgfbとピッチ
であるgpitchおよびその大きさであるgpowe
rを求めるのだが、pNが0のときはステップ203で
gpitchを0としてサブルーチン400のF2pを
通さずにそのままリターンし、pNが1のときはステッ
プ206でgFiの先頭の値をgfbに代入し、gPk
の先頭の値をgpowerに代入してF2pを通してリ
ターンし、pNが2以上のときはステップ208からス
テップ237でgFiとgPkからgfbとgpowe
rを求めてF2pを通しgpitchを求めてリターン
する。gFiとgPkの位置を指定するローカル変数の
うち、1は仮の基本波を指定し、jは高調波候補を指定
する。ローカル変数kは高調波の次数である。ローカル
変数mはgFiとgPkのうち有効な高調波の数であ
る。ローカル変数nは有効な高調波の最高次数を記憶す
る。ローカル変数fiとfjはgFiの中からiとjで
指定される位置の値を代入する。ステップ208でfi
に仮の基本波を設定し、ステップ212で高調波候補を
設定し、ステップ218からステップ223で高調波を
見つける。ステップ224で仮の基本波の精度を上げる
ため、高調波候補との重み付けして平均を取る。仮の基
本波の大きさもpiに加算する。エネルギーとすれば自
乗和でもよいが、ここでは加算にした。高調波の次数に
対応した位置のfに高調波候補を代入する。高調波を判
別するしきい値floorとceilingは最初TO
LMAXとTOLMINだったのをデータが増え、精度
が上がったということで0.7乗し、厳しくする。0.
7は経験から得られた値である。すべてのgFiとgP
kのデータを対象に高調波を含めた大きさの合計を求め
ていき、最高のものを実際の基本波とするわけである
が、ステップ225はそのために今まで調べた最高の大
きさと現在の大きさを比較する。これは請求項3の内容
を具体的にしたものである。さらにステップ227から
232ではマイクロフォンの性能などから基本波の大き
さより、第2高調波の大きさのほうが大きくなる場合が
あり、それを判断するために、今まで調べた基本波の周
波数が現在の基本波の周波数の(1/2)でかつ大きさ
が(1/2)を越えるとき、今まで調べた基本波のほう
を実際の基本波と決定するようにしている。ステップ2
34から237は通常の場合であり、仮の基本波をgf
bに代入し、仮の大きさもgpowerに代入する。ス
テップ236とステップ237の2つがあるのは周波数
が高いほうが精度が高いので、高調波がある場合は基本
波の周波数を高調波から求めている。これは請求項4の
内容を具体的にしたものである。
【0030】サブルーチン250のFftは図9のフロ
ーチャートで説明する。1を251の実行ステップでロ
ーカル変数iに代入し、0をmに代入し、252の判断
ステップへ進む。252の判断ステップではiがcSz
より小さいかどうか判断し、小さければ253の実行ス
テップへ進み、小さくなければ254の実行ステップへ
進む。253の実行ステップではi自身を2倍し、m自
身を1増加させ、252の判断ステップへ戻る。254
の実行ステップではcSzをローカル変数nに代入し、
(PI2/cSz)をローカル変数sclに代入し、0
をiに代入し、255の判断ステップへ進む。255の
判断ステップではiがmより小さいかどうか判断し、小
さければ256の実行ステップへ進み、小さくなければ
263の実行ステップへ進む。256の実行ステップで
はnをローカル変数deltaに代入し、n自身を半分
にし、0.0をローカル変数argに代入し、0をjに
代入し、257の判断ステップへ進む。257の判断ス
テップではjがnより小さいかどうかを判断し、小さけ
れば259の実行ステップへ進み、小さくなければ25
8の実行ステップへ進む。258の実行ステップではs
cl自身を2倍し、i自身を1増加させ、255の判断
ステップへ戻る。259の実行ステップではargの余
弦をローカル変数cに代入し、argの正弦に負の記号
をつけたものをローカル変数sに代入し、arg自身を
sclだけ増加させ、deltaをkに代入し、260
の判断ステップへ進む。260の判断ステップではkが
cSzより大きくないことを判断し、大きくなければ2
61の実行ステップへ進み、大きければ262の実行ス
テップへ進む。261の実行ステップでは(k−del
ta+j)をj1に代入し、(j1+n)をj2に代入
し、(j1で指定される位置のgX−j2で指定される
位置のgX)をローカル変数t1に代入し、(j1で指
定される位置のgY−j2で指定される位置のgY)を
ローカル変数t2に代入し、(j1で指定される位置の
gX+j2で指定される位置のgX)をj1で指定され
る位置のgXに再び代入し、(j1で指定される位置の
gY+j2で指定される位置のgY)をj1で指定され
る位置のgYに再び代入し、(c×t1+s×t2)を
j2で指定される位置のgXに代入し、(c×t2−s
×t1)をj2で指定される位置のgYに代入し、k自
身をdeltaだけ増加させ、260の判断ステップへ
戻る。262の実行ステップではj自身を1増加させ、
257の判断ステップへ戻る。263の実行ステップで
は0をjおよびiに代入し、264の判断ステップへ進
む。264の判断ステップではiが(cSz−1)より
小さいかどうか判断し、小さければ266の判断ステッ
プへ進み、小さくなければ265のリターンステップへ
進む。265のリターンステップではサブルーチン25
0のFftを終了し、元のルーチンへ戻る。266の判
断ステップではiがjより小さいかどうか判断し、小さ
ければ267の実行ステップへ進み、小さくなければ2
68の実行ステップへ進む。267の実行ステップでは
jで指定されるgXをt1に代入し、さらにjで指定さ
れるgYをt2に代入し、iで指定される位置のgXを
jで指定される位置のgXに代入し、iで指定される位
置のgYをjで指定される位置のgYに代入し、t1を
iで指定される位置のgXに代入し、t2をiで指定さ
れる位置のgYに代入し、268の実行ステップへ進
む。268の実行ステップでは(cSz/2)をkに代
入し、269の判断ステップへ進む。269の判断ステ
ップではkがjより大きくないことを判断し、大きくな
ければ270の実行ステップへ進み、大きければ271
の実行ステップへ進む。270の実行ステップではj自
身をkだけ減少させ、k自身を半分にし、269の判断
ステップへ戻る。271の実行ステップではj自身をk
だけ増加させ、i自身を1だけ増加させ、264の判断
ステップへ戻る。
【0031】ステップ251からステップ253までで
演算の段数を求め、ステップ254からステップ262
までで実際の高速フーリエ変換の演算を行い、ステップ
263からステップ271までで周波数を昇順にする。
ここでは時間軸のデータに特に重みをつけなかったが、
ハミング窓などの重みをつけることも可能である。
【0032】サブルーチン300のPedestalは
図10のフローチャートで説明する。301の実行ステ
ップで0.0をローカル変数powersに代入し、0
をiに代入し、302の判断ステップに進む。302の
判断ステップでは1がcSzより小さいことを判断し、
小さければ304の実行ステップへ進み、小さくなけれ
ば303の実行ステップへ進む。303の実行ステップ
ではiで指定される位置のgXの2乗とiで指定される
位置のgYの2乗の和の平方根を求め、iで指定される
位置のgZ0に代入し、powers自身をそのデータ
分だけ増加させ、i自身を1増加させ、302の判断ス
テップへ戻る。304の実行ステップでは0をiに代入
し、(powers/cSz×PED)をローカル変数
levelに代入し、305の判断ステップへ進む。3
05の判断ステップではiがcSzより小さいことを判
断し、小さければ307のリターンステップへ進み、小
さくなければ306の実行ステップへ進む。306の実
行ステップでは(iで指定される位置のgZ0−lev
el)と0のうちの大きい方をiで指定される位置のg
Z1に代入し、i自身を1増加させ、305の判断ステ
ップへ戻る。307のリターンステップではサブルーチ
ン300のPedestalを終了し、元のルーチンへ
戻る。
【0033】ステップ301からステップ303までで
周波数データの絶対値をgZ0にセットし、ステップ3
04からステップ306までで全周波数データの平均の
値のPED倍以上の周波数のみgZ1にセットし、それ
以下の絶対値の周波数のデータは0.0をgZ1にセッ
トする。これでよけいな演算を省く。
【0034】サブルーチン350のFdpkは図11の
フローチャートで説明する。351の判断ステップでは
2番目の位置のgZ1が1番目の位置のgZ1より大き
いかどうか判断し、大きければ352の実行ステップへ
進み、大きくなければ353の実行ステップへ進む。3
52の実行ステップではTRUEをローカル変数bIn
cに代入し、354の実行ステップへ進む。353の実
行ステップではFALSEをbIncに代入し、354
の実行ステップへ進む。ちなみに0番目の位置のgZ1
は周波数が0の直流成分なので省く。354の実行ステ
ップでは2番目の位置のgZ1をローカル変数ymに代
入し、3をローカル変数kに代入し、0をグローバル変
数pNに代入し、355の判断ステップへ進む。ナイキ
スト周波数の条件から355の判断ステップではkが
(cSz/2)より小さいことを判断し、小さければ3
56の実行ステップへ進み、小さくなければ363のリ
ターンステップへ進む。356の実行ステップではkで
指定される位置のgZ1をローカル変数ypに代入し、
357の判断ステップへ進む。357の判断ステップで
はbIncがTRUEかどうか判断し、TRUEならば
358の判断ステップへ進み、TRUEでなければ35
9の判断ステップへ進む。358の判断ステップではy
pがymより小さいことを判断し、小さければ361の
実行ステップへ進み、小さくなければ364の実行ステ
ップへ進む。361の実行ステップでは(k−2)で指
定される位置のgZ0をローカル変数pjmに代入し、
(k−1)で指定される位置のgZ0をローカル変数p
jに代入し、kで指定される位置のgZ0をローカル変
数pjpに代入し、((pjp+pjm)/2−pj)
をローカル変数aに代入し、((pjp−pjm)/
2)をローカル変数bに代入し、((−b/2/b+
(k−1))×SFREQ/cSz)をpNで指定され
る位置のgFiに代入し、(pj−b×b/4/a)の
値をpNで指定される位置のgPkに代入し、FALS
EをbIncに代入し、pN自身を1増加させ、362
の判断ステップへ進む。362の判断ステップではpN
がPEAKSより小さくないことを判断し、小さくなけ
れば363のリターンステップへ進み、小さければ36
4の実行ステップへ進む。359の判断ステップではy
pがymより大きいことを判断し、大きければ360の
実行ステップへ進み、大きくなければ364の実行ステ
ップへ進む。360の実行ステップではTRUEをbI
ncに代入し、364の実行ステップへ進む。364の
実行ステップではypをymに代入し、k自身を1増加
させ、355の判断ステップへ戻る。363のリターン
ステップではサブルーチン350のFdpkを終了し、
元のルーチンへ戻る。
【0035】ステップ351からステップ360でgZ
1の連続するデータが大きくなって少しでも小さくなっ
ているところを探す。そのときの位置はkで指示される
が、中心は(k−1)であり、隣は(k−2)およびk
である。ステップ361では実際のピークの周波数およ
び大きさを求める。曲線を2次式で近似し、(k−1)
をたて軸とし、隣との座標距離を各1として係数aおよ
びbを求める。aは((pjp+pjm)/2−pj)
となり、bは((pjp−pjm)/2)となる。さら
に極大値を求めるため、2次式を微分して0になるとこ
ろを求めると(−b/2/a)となるが、実際の周波数
に変換すると((−b/2/a+(k−1))×SFR
EQ/cSz)となる。そのときの大きさは(−b/2
/a)を2次式に代入して、(pj−b×b/4/a)
となる。ステップ364では次のピークに備える。
【0036】サブルーチン400のF2pは図12のフ
ローチャートで説明する。401の実行ステップでは0
をローカル変数octに代入し、gfbをローカル変数
fに代入し、402の判断ステップへ進む。402の判
断ステップではfがMTP0より小さいことを判断し、
小さければ403の判断ステップへ進み、小さくなけれ
ば404の判断ステップへ進む。403の判断ステップ
ではfがMTP0より小さいかどうか判断し、小さけれ
ば405の実行ステップへ進み、小さくなければ407
の判断ステップへ進む。405の実行ステップではf自
身を2倍し、oct自身を1減少し、403の判断ステ
ップへ戻る。404の判断ステップではfがMTP12
より小さくないことを判断し、小さくなければ406の
実行ステップへ進み、小さければ407の判断ステップ
へ進む。406の実行ステップではf自身を半分にし、
oct自身を1増加させ、404の判断ステップへ戻
る。407の判断ステップではfがMTP6より小さい
ことを判断し、小さければ408の判断ステップへ進
み、小さくなければ419の判断ステップへ進む。40
8の判断ステップではfがMTP3より小さいことを判
断し、小さければ414の判断ステップへ進み、小さく
なければ409の判断ステップへ進む。409の判断ス
テップではfがMTP5より小さいことを判断し、小さ
ければ411の判断ステップへ進み、小さくなければ4
10の実行ステップへ進む。410の実行ステップでは
5をローカル変数pitに代入し、430の実行ステッ
プへ進む。411の判断ステップではfがMTP4より
小さいことを判断し、小さければ413の実行ステップ
へ進み、小さくなければ412の実行ステップへ進む。
412の実行ステップでは4をpitに代入し、430
の実行ステップへ進む。413の実行ステップでは3を
pitに代入し、430の実行ステップへ進む。414
の判断ステップではfがMTP2より小さいことを判断
し、小さければ416の判断ステップへ進み、小さくな
ければ415の実行ステップへ進む。415の実行ステ
ップでは2をpitに代入し、430の実行ステップへ
進む。416の判断ステップではfがMTP1より小さ
いことを判断し、小さければ418の実行ステップへ進
み、小さくなければ417の実行ステップへ進む。41
7の実行ステップでは1をpitに代入し、430の実
行ステップへ進む。418の実行ステップでは0をpi
tに代入し、430の実行ステップへ進む。419の判
断ステップではfがMTP9より小さいことを判断し、
小さければ425の判断ステップへ進み、小さくなけれ
ば420の判断ステップへ進む。420の判断ステップ
ではfがMTP11より小さいことを判断し、小さけれ
ば422の判断ステップへ進み、小さくなければ421
の実行ステップへ進む。421の実行ステップでは11
をpitに代入し、430の実行ステップへ進む。42
2の判断ステップではfがMTP10より小さいことを
判断し、小さければ424の実行ステップへ進み、小さ
くなければ423の実行ステップへ進む。423の実行
ステップでは10をpitに代入し、430の実行ステ
ップへ進む。424の実行ステップでは9をpitに代
入し、430の実行ステップへ進む。425の判断ステ
ップではfがMTP8より小さいことを判断し、小さけ
れば427の判断ステップへ進み、小さくなければ42
6の実行ステップへ進む。426の実行ステップでは8
をpitに代入し、430の実行ステップへ進む。42
7の判断ステップではfがMTP7より小さいことを判
断し、小さければ429の実行ステップへ進み、小さく
なければ428の実行ステップへ進む。428の実行ス
テップでは7をpitに代入し、430の実行ステップ
へ進む。429の実行ステップでは6をpitに代入
し、430の実行ステップへ進む。430の実行ステッ
プでは(60+oct×12+pit)をグローバル変
数のgpitchに代入し、431のリターンステップ
へ進む。431のリターンステップではサブルーチン4
00のF2pを終了し元のルーチンへ戻る。
【0037】ステップ401からステップ406では基
本波の周波数が平均率音階のC4のピッチからB4のピ
ッチの中に入っているかどうかチェックし、入っていな
ければ周波数を半分にしたり2倍にしたりして、C4か
らB4の中に収まるようにし、同時にオクターブの情報
も記憶する。ステップ407からステップ429では周
波数の量子化を行い、12段階のピッチの中に振り分け
る。ステップ430ではMIDIの規格に合わせて、C
4のピッチを60としてオクターブの情報とピッチの情
報から絶対的なピッチの情報に変換する。MIDIでは
ピッチとして0から127までの値を使用し、C(−
1)の約8HzからG9の約12544Hzまでカバー
する。ただしここでは0は音がないということにしてい
る。
【0038】サブルーチン500のMakeEvent
は図13のフローチャートで説明する。501の実行ス
テップではeSzの大きさのイベントの構造を持つバッ
ファgEを確保し、0をローカル変数pitとiおよび
jに代入し、(DIV×TEMPO×bSz/60/S
FREQ)をローカル変数coに代入し、(gavep
/4)をローカル変数av4に代入し、502の判断ス
テップへ進む。502の判断ステップでは1が(bN−
cSz/bSz)より大きいかどうか判断し、大きけれ
ば503の判断ステップへ進み、大きくなければ506
の判断ステップへ進む。506の判断ステップではpi
tが0かどうか判断し、0ならば508の判断ステップ
へ進み、0でないならば507の判断ステップへ進む。
508の判断ステップではiで指定される位置のgPw
がav4より小さいかどうか判断し、小さければ516
の実行ステップへ進み、小さくなければ512の実行ス
テップへ進む。507の判断ステップではiで指定され
る位置のgPwがav4より小さいかどうか判断し、小
さければ509の実行ステップへ進み、小さくなければ
510の判断ステップへ進む。509の実行ステップで
は(co×i)をjで指定される位置のgEの構造体の
うちのtkに代入し、OFFをtpに代入し、pitを
d1に代入し、さらに0をローカル変数のpitに代入
し、j自身を1増加させ、516の実行ステップへ進
む。510の判断ステップでは1で指定される位置のg
Ptがpitと等しければ513の実行ステップへ進
み、等しくなければ511の実行ステップへ進む。51
1の実行ステップでは(co×i)をjで指定される位
置のgEの構造体のうちのtkに代入し、OFFをtp
に代入し、pitをd1に代入し、さらにj自身を1増
加させ、512の実行ステップへ進む。512の実行ス
テップではiで指定される位置のgPtをpitに代入
し、(co×i)をjで指定される位置のgEの構造体
のうちのtkに代入し、ONをtpに代入し、pitを
d1に代入し、さらにj自身を1増加させ、516の実
行ステップへ進む。513の実行ステップでは(j−
1)で指定される位置のgEの構造体のうちのd2をロ
ーカル変数aに代入し、(iで指定される位置のgPw
×64/gavep)をローカル変数bに代入し、51
4の判断ステップへ進む。514の判断ステップではa
がbより小さいかどうか判断し、小さければ516の実
行ステップへ進み、小さくなければ515の実行ステッ
プへ進む。515の実行ステップでは(iで指定される
位置のgPw×64/gavep)を(j−1)で指定
される位置のgEの構造体のうちのd2に代入し、51
6の実行ステップへ進む。516の実行ステップではi
自身を1増加する。503の判断ステップではpitが
0かどうかを判断し、0ならば505のリターンステッ
プへ進み、0でなければ504の実行ステップへ進む。
504の実行ステップでは(co×1)をjで指定され
る位置のgEの構造体のうちのtkに代入し、OFFを
tpに代入し、pitをd1に代入し、505のリター
ンステップへ進む。505のリターンステップではサブ
ルーチン500のMakeEventを終了し、元のル
ーチンへ戻る。
【0039】イベントの数は150の変換ルーチンのス
テップ160からステップ171ですでに見積もられて
いるので、その数であるeSzにしたがってバッファを
確保し、バッファの内容を埋めていくのがこのルーチン
の目的である。4分音符の音楽的時間DIVと1秒間の
4分音符の数(TEMPO/60)およびピッチの演算
間隔(bSz×SFREQ)をすべて掛けた値をcoと
いう係数にし、ピッチの演算番号であるiに乗じると、
イベントの音楽的時間になる。ONおよびOFFのイベ
ントはeSzを見積もったときと同じしきい値で判別
し、イベントの発生番号であるjでgEを指定して、イ
ベントの構造を埋めていく。イベントの構造のうちd2
は、イベントがON状態のとき、個々のピッチの大きさ
であるgPwと平均値であるgavepから、ちょうど
gPwが平均値のときを64として大きいほうの値を代
入する。MIDIのピッチは0から127まで定義され
ているが、0はほとんど使用されることがないので、こ
こではOFF状態を示すのに用いた。
【0040】つぎに3のキーボード等を使ってMIDI
データを出力するコマンドをシステムに送ったとき、シ
ステムでどんなことが行われるかフローチャートを使っ
て説明する。
【0041】まず図14の550のMIDI出力のメイ
ンルーチンに入り、551の実行ステップで0をグロー
バル変数gtimeに代入し、6のうちのタイマーに1
msをセットしスタートさせ、0をローカル変数1に代
入し、552の判断ステップへ進む。552の判断ステ
ップではiがeSzより小さいことを判断し、小さけれ
ば553の実行ステップへ進み、小さくなければ559
の終了ステップへ進む。553の実行ステップではiで
指定される位置のgEをイベントの構造を持つローカル
変数evに代入し、(evのうちのtk×60×100
0/TEMPO/DIV)をローカル変数tkTに代入
し、554の判断ステップへ進む。554の判断ステッ
プではgtimeがtkTより小さくないことを判断
し、小さくなければ555の実行ステップへ進み、小さ
ければ554の判断ステップに留まる。gtimeは5
60の割り込みルーチンによって増加する。560の割
り込みルーチンは1msごとに発生し、そのたびに56
1の実行ステップでgtime自身を1増加し、562
のリターンステップで560の割り込みルーチンを終了
する。すなわちgtimeは1msごとに1増加する。
これによりメインルーチンの554の判断ステップで条
件が整うと、555以降の実行ステップに進むと、55
5ではevのうちのtpを、556ではevのうちのd
1を、557ではevのうちのd2を12のMIDIイ
ンターフェースへ次々と出力し、558でi自身を1増
加し、552の判断ステップへ戻る。
【0042】これによりONとOFFのメッセージが次
々と決められたタイミングでMIDIインターフェース
に送られ、さらにスピーカーインターフェースを通して
スピーカーから指定された音が出力される。
【0043】
【発明の効果】以上説明したように、本発明によれば、
音楽用キーボード等を用いること無く、頭に浮かんだ曲
を音にするだけで、自動的に譜面を作成することが可能
となった。
【図面の簡単な説明】
【図1】本発明を適用したコンピュータによる採譜装置
を有するコンピュータの外観である。
【図2】本発明を適用したコンピュータによる採譜装置
を有するコンピュータの内部ブロック図である。
【図3】メモリーの中に最初から確保されるバッファメ
モリーおよびグローバル変数である。
【図4】メモリーの中に確保されるバッファメモリーお
よびグローバル変数である。
【図5】音声入力のメインルーチンと割込ルーチンのフ
ローチャートである。
【図6】音声データを周波数演算のバッファにコピー
し、最終的にはMIDIのイベントデータに変換するま
でのフローチャートである。
【図7】サブルーチンFormantのフローチャート
の一部である。
【図8】サブルーチンFormantのフローチャート
の一部である。
【図9】サブルーチンFftのフローチャートである。
【図10】サブルーチンPedestalのフローチャ
ートである。
【図11】サブルーチンFdpkのフローチャートであ
る。
【図12】サブルーチンF2pのフローチャートであ
る。
【図13】サブルーチンMakeEventのフローチ
ャートである。
【図14】MIDI出力のメインルーチンと割込ルーチ
ンのフローチャートである。
【符号の説明】
1 コンピュータ本体 2 表示装置 3 コンピュータ用キーボード 4 マイクロフォン 5 スピーカー 6 CPUおよびタイマー 7 メモリー 8 2次記憶装置 9 キーボードおよびマウスのインターフェース 10 アドレスおよびデータバス 11 ディスプレイインターフェースおよびビデオメモ
リー 12 音声とMIDIおよびスピーカーのインターフェ
ース 13 バッファメモリーgV 14 グローバル変数gi 15 グローバル変数gj 16 グローバル変数giend 17 バッファメモリーgPt 18 バッファメモリーgPw 19 グローバル変数gavep 20 バッファメモリーgX 21 バッファメモリーgY 22 バッファメモリーgZ0 23 バッファメモリーgZ1 24 グローバル変数gfb 25 グローバル変数gpower 26 グローバル変数gpitch 27 バッファメモリーgFi 28 バッファメモリーgPk 29 バッファメモリーgE 30 グローバル変数gtime

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 音を物理信号に変換する手段、変換され
    た物理信号を記憶する手段、記憶された物理信号をある
    時間窓で周波数に変換する手段、得られた周波数の中か
    ら基本波の周波数を決定する手段、基本波の周波数を平
    均率音階のピッチに変換する手段、得られたピッチとそ
    の時間を記憶する手段を有するコンピュータによる採譜
    装置
  2. 【請求項2】 記憶された物理信号をある時間窓で周波
    数に変換する手段は記憶されたある時間の物理信号を、
    複数の時間窓で変換することを特徴とする請求項1のコ
    ンピュータによる採譜装置
  3. 【請求項3】 得られた周波数の中から基本波の周波数
    を決定する手段は高調波を含めたパラメータの合計が最
    大になる周波数を基本波として決定することを特徴とす
    る請求項1のコンピュータによる採譜装置
  4. 【請求項4】 得られた周波数の中から基本波の周波数
    を決定する手段はもっとも次数の高い高調波の周波数を
    その次数で割ったものを基本波の周波数として決定する
    ことを特徴とする請求項3のコンピュータによる採譜装
  5. 【請求項5】 得られたピッチとその時間を記憶する手
    段はピッチや入力信号の大きさがある程度変化したとき
    のみ、ピッチとその時間を記憶することを特徴とする請
    求項1のコンピュータによる採譜装置
JP25122697A 1997-08-13 1997-08-13 コンピュータによる採譜装置 Pending JPH1165560A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP25122697A JPH1165560A (ja) 1997-08-13 1997-08-13 コンピュータによる採譜装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25122697A JPH1165560A (ja) 1997-08-13 1997-08-13 コンピュータによる採譜装置

Publications (1)

Publication Number Publication Date
JPH1165560A true JPH1165560A (ja) 1999-03-09

Family

ID=17219592

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25122697A Pending JPH1165560A (ja) 1997-08-13 1997-08-13 コンピュータによる採譜装置

Country Status (1)

Country Link
JP (1) JPH1165560A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006106946A1 (ja) * 2005-04-01 2006-10-12 National Institute Of Advanced Industrial Science And Technology 音高推定方法及び装置並びに音高推定用プログラム
CN113963723A (zh) * 2021-09-16 2022-01-21 秦慈军 一种音乐呈现方法、装置、设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006106946A1 (ja) * 2005-04-01 2006-10-12 National Institute Of Advanced Industrial Science And Technology 音高推定方法及び装置並びに音高推定用プログラム
GB2440079A (en) * 2005-04-01 2008-01-16 Nat Inst Of Advanced Ind Scien Pitch estimating method and device and pitch estimating program
GB2440079B (en) * 2005-04-01 2009-07-29 Nat Inst Of Advanced Ind Scien Pitch estimating method and device and pitch estimating program
CN113963723A (zh) * 2021-09-16 2022-01-21 秦慈军 一种音乐呈现方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
Maher et al. Fundamental frequency estimation of musical signals using a two‐way mismatch procedure
CN112992110B (zh) 音频处理方法、装置、计算设备以及介质
JP2020003536A (ja) 学習装置、自動採譜装置、学習方法、自動採譜方法及びプログラム
Renault et al. Differentiable piano model for midi-to-audio performance synthesis
US4860624A (en) Electronic musical instrument employing tru-scale interval system for prevention of overtone collisions
WO2022089097A1 (zh) 音频处理方法、装置及电子设备和计算机可读存储介质
US6762357B2 (en) Resonance apparatus, resonance method and computer program for resonance processing
EP1168296A3 (en) Waveform signal generation method with pseudo low tone synthesis
JPH1165560A (ja) コンピュータによる採譜装置
JP2003345400A (ja) ピッチ変換装置、ピッチ変換方法及びプログラム
US6180866B1 (en) Reverberating/resonating apparatus and method
US5478968A (en) Stereophonic sound generation system using timing delay
JP2007333895A (ja) 和音推定装置及び方法
Wu et al. Multipitch estimation by joint modeling of harmonic and transient sounds
US5559298A (en) Waveform read-out system for an electronic musical instrument
JPH02187796A (ja) 実時間ディジタル加算シンセサイザ
JPH09152865A (ja) 音声自動採譜装置
JP5703555B2 (ja) 楽音信号処理装置及びプログラム
US20240428759A1 (en) Information processing device, electronic musical instrument, electronic musical instrument system, and sound production control method
Chaudhary Perceptual scheduling in real-time music and audio applications
JP3750409B2 (ja) 楽音発生装置及び楽音発生処理プログラムを記録した記録媒体
JPH10319984A (ja) 歌唱音声合成装置、歌唱音声合成方法および記憶媒体
US6867360B2 (en) Electronic musical instrument, difference tone output apparatus, a program and a recording medium
JP3455976B2 (ja) 楽音発生装置
JP3453041B2 (ja) 楽音合成装置