[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP3455757B2 - テンポデータ生成装置及びテンポデータ生成方法 - Google Patents

テンポデータ生成装置及びテンポデータ生成方法

Info

Publication number
JP3455757B2
JP3455757B2 JP23410393A JP23410393A JP3455757B2 JP 3455757 B2 JP3455757 B2 JP 3455757B2 JP 23410393 A JP23410393 A JP 23410393A JP 23410393 A JP23410393 A JP 23410393A JP 3455757 B2 JP3455757 B2 JP 3455757B2
Authority
JP
Japan
Prior art keywords
value
peak value
stored
tempo
peak
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.)
Expired - Fee Related
Application number
JP23410393A
Other languages
English (en)
Other versions
JPH0764544A (ja
Inventor
仁久 小山
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 JP23410393A priority Critical patent/JP3455757B2/ja
Publication of JPH0764544A publication Critical patent/JPH0764544A/ja
Application granted granted Critical
Publication of JP3455757B2 publication Critical patent/JP3455757B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Auxiliary Devices For Music (AREA)
  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はテンポデータ生成装置及
びテンポデータ生成方法に関し、詳細には、実際の演奏
の音響信号からテンポを検出して、テンポデータを生成
するテンポデータ生成装置及びテンポデータ生成方法に
関する。
【0002】
【従来の技術】近時、電子楽器の普及に伴い、演奏形態
も多様化し、複数の機器を同期させて演奏することが行
われている。
【0003】この場合、演奏の同期をとるために、演奏
のテンポを検出してテンポデータを生成し、そのテンポ
データにより同期させることが必要となる。
【0004】そこで、従来では、複数のパートで構成さ
れた演奏データのうち、制御トラックに入っているテン
ポデータを取り出して、このテンポデータにより外部機
器、例えば、シーケンサ等を同期させている。
【0005】
【発明が解決しようとする課題】しかしながら、このよ
うな従来のテンポデータ生成装置にあっては、演奏デー
タのテンポデータを取り出すのみであったため、人が演
奏する場合のような生の演奏の音響信号に基づいてテン
ポを正確に検出して、テンポデータを生成することがで
きず、このような生の演奏の音響信号により外部機器と
同期を取ることができないという問題があった。
【0006】そこで、本発明は、テンポデータを有しな
い生の演奏の音響信号であっても、テンポデータを生成
することのできるテンポデータ生成装置及びテンポデー
タ生成方法を提供することを目的としている。
【0007】
【課題を解決するための処理】本発明のテンポデータ生
成装置は、入力される音響信号の特定周波数帯のレベル
を抽出する抽出手段と、前記抽出手段で抽出されたレベ
ルのピーク値と発生時間を順次記憶する記憶手段と、前
記記憶手段に記憶されたレベルのピーク値の平均値を算
出する算出手段と、前記記憶手段に記憶されたレベルの
ピーク値のうち、前記算出手段により算出された平均値
を超えるピーク値のレベルを2個選択する選択手段と、
前記記憶手段に記憶された他のレベルが前記選択手段に
より選択された2個のレベルの発生間隔毎に存在するか
否かを検索する検索手段と、前記検索手段が他のレベル
が前記発生間隔毎に存在していると検知したときに、該
発生間隔に基づいてテンポデータを生成するテンポデー
タ生成手段と、前記検索手段が他のレベルが前記発生間
隔毎に存在しないと検知したときに、前記選択手段に前
記記憶手段から他のレベルを選択させる再選択手段と、
を備えることとにより、上記目的を達成している。
【0008】この場合、前記記憶手段は、例えば、請求
項2に記載するように、前記抽出手段により抽出された
レベルのうち、特定値以上のピーク値を有するレベルの
ピーク値のみを記憶するものであってもよい。
【0009】また、本発明のテンポデータ生成方法は、
入力される音響信号の特定周波数帯のレベルを抽出する
抽出処理と、前記抽出処理により抽出されたレベルのピ
ーク値と発生時間を順次記憶する記憶処理と、前記記憶
処理により記憶されたレベルのピーク値の平均値を算出
する算出処理と、前記記憶処理により記憶されたレベル
のピーク値のうち、前記算出処理により算出された平均
値を超えるピーク値のレベルを2個選択する選択処理
と、前記記憶処理により記憶された他のレベルが前記選
択処理により選択された2個のレベルの発生間隔毎に存
在するか否かを検索する検索処理と、前記検索処理で他
のレベルが前記発生間隔毎に存在していると検知された
ときに、該発生間隔に基づいてテンポデータを生成する
テンポデータ生成処理と、前記検索処理で他のレベルが
前記発生間隔毎に存在しないと検知されたときに、前記
選択処理により前記記憶処理で記憶された他のレベルを
選択させる再選択処理と、を備えることにより、上記目
的を達成している。
【0010】この場合、前記記憶処理は、例えば、請求
項4に記載するように、前記抽出処理により抽出された
レベルのうち、特定値以上のピーク値を有するレベルの
ピーク値のみを記憶してもよい。
【0011】
【作用】本発明のテンポデータ生成装置及びテンポデー
タ生成方法によれば、入力される音響信号の特定周波数
帯のレベルを抽出し、この抽出したレベルのピーク値と
発生時間を順次記憶する。この記憶されたレベルのピー
ク値の平均値を算出し、該記憶されたレベルのピーク値
のうち、算出した平均値を超えるピーク値のレベルを2
個選択する。そして、この選択した2個のレベルの発生
間隔毎に、前記記憶した他のレベルが存在するか否かを
検索して、他のレベルが該発生間隔毎に存在していると
きには、該発生間隔に基づいてテンポデータを生成し、
他のレベルが該発生間隔毎に存在しないときには、前記
記憶した他のレベルを選択して、同様に検索する。
【0012】したがって、楽器等の生の演奏の音響信号
から正確にテンポを検出して、テンポデータを生成する
ことができ、このテンポデータに基づいてシーケンサ等
の外部機器の同期を取ることができる。
【0013】
【実施例】以下、本発明を実施例に基づいて具体的に説
明する。
【0014】図1〜図16は、本発明のテンポデータ生
成装置及びテンポデータ生成方法の一実施例を示す図で
ある。
【0015】図1は、テンポデータ生成装置1のブロッ
ク構成図である。
【0016】テンポデータ生成装置1は、CPU(Cent
ral Processing Unit) 2、周波数フィルタ3、音量レ
ベルフィルタ4、メモリ5、データメモリ6、クロック
シーケンスコンポーザ7及びクロック生成部8等を備
え、テンポデータ生成装置1には、音響信号を発生する
プレイヤー9、例えば、楽器あるいは演奏された音を再
生する再生装置等とテンポデータ生成装置1の出力する
テンポデータにより同期を取る外部機器10、例えば、
シーケンサ等が接続される。
【0017】周波数フィルタ3には、プレイヤー9が接
続され、周波数フィルタ3は、プレイヤー9から入力さ
れる音響信号のうち特定周波数帯の音響信号のみを通過
させて、音量レベルフィルタ4に出力する。
【0018】音量レベルフィルタ4は、周波数フィルタ
3から入力される音響信号のうち、所定レベル以上の音
響信号のみを透過させてメモリ5に出力する。すなわ
ち、音量レベルフィルタ4は、周波数フィルタ3を通過
した音響信号のピーク値を取り出して、メモリ5に出力
する。
【0019】メモリ5は、RAM等で構成され、音量レ
ベルフィルタ4を通過した音響信号のピーク値とそのピ
ーク値の発生時間を記憶するピーク値領域PAと、後述
するように、このピーク値の平均値を超えるレベルのピ
ーク値とそのピーク値の発生時間を記憶する平均値領域
AAと、を有している。
【0020】メモリ5に記憶されたピーク値は、クロッ
クシーケンスコンポーザ7に読み出され、クロックシー
ケンスコンポーザ7で演算処理される。
【0021】すなわち、クロックシーケンスコンポーザ
7は、ピーク値領域PAに書き込まれたピーク値の平均
値を算出して、算出した平均値をメモリ5の平均値領域
AAに書き込むとともに、この平均値を超えるピーク値
を2個選択して、選択した2個のピーク値の発生時間間
隔に選択した以外のピーク値がピーク値領域PAに存在
するかどうか検索し、存在するときには、その発生時間
間隔によりテンポデータを生成して、データメモリ6に
書き込む。また、クロックシーケンスコンポーザ7は、
上記選択した2個のピーク値の発生時間間隔に選択した
以外のピーク値が存在しないときには、ピーク値の選択
をやり直し、同様に、処理して、テンポデータを生成す
る。
【0022】データメモリ6は、RAM等で構成され、
データメモリ6には、クロックシーケンスコンポーザ7
の生成したテンポデータと発生時間が書き込まれる。
【0023】クロック生成部8は、CPU2の制御下で
動作し、データメモリ6に書き込まれたテンポデータに
対応するテンポのクロック信号を生成して、外部機器1
0に出力する。
【0024】CPU2は、内部ROMに格納されたプロ
グラムに従ってテンポデータ生成装置1の各部を制御
し、テンポデータ生成装置1としての処理を行わせる。
【0025】次に作用について説明する。
【0026】テンポデータ生成装置1は、図1に示すよ
うに、楽器あるいは演奏された音を再生する再生装置等
の音響信号を発生するプレイヤー9と、テンポデータ生
成装置1の出力するクロック信号により同期を取るシー
ケンサ等の外部機器10に接続され、プレイヤー9で発
生された音響信号のテンポを検出し、そのテンポのテン
ポデータを生成し、外部機器10に出力して、外部機器
10の同期を取る。
【0027】以下、このテンポデータ生成処理について
説明する。
【0028】〈メイン処理〉テンポデータ生成装置1
は、電源が投入されると、図2に示すように、まず、各
種レジスタ等への初期値の設定等のイニシャライズ処理
を行い(ステップS1)、イニシャライズ処理が完了す
ると、プレイヤー9からの音響信号が入力されたかどう
かにより曲がスタートしたかどうかチェックする(ステ
ップS2)。
【0029】曲がスタートすると、プレイヤー9からの
音響信号に対して、後述するピーク検出処理(ステップ
S3)、平均値算出処理(ステップS4)、テンポ算出
処理(ステップS5)を順次行って、テンポデータを生
成し、生成したテンポデータを外部機器10に出力する
(ステップS6)。
【0030】以下、ピーク検出処理、平均値算出処理、
テンポ算出処理について、詳細に説明する。
【0031】〈ピーク検出処理〉ピーク検出処理では、
図3に示すように、まず、ポインタIに「0」をセット
し(ステップP1)、データ(音響信号)が入力された
かどうかチェックする(ステップP2)。
【0032】ステップP2で、データが入力されていな
いときには、ピーク検出するデータが入力されていない
のであるから、そのままピーク検出処理を終了する。
【0033】ステップP2で、データが入力されると、
バンドパスフィルタ(BPF)処理を行って、特定周波
数帯のデータのみを取り込むエンベロープ処理を行い
(ステップP3)、この検出したエンベロープ値をレジ
スタE0にストアする(ステップP4)。
【0034】すなわち、BPF処理では、図4に示すよ
うなデータ(音響信号)が入力されると、このデータの
特定周波数帯のデータのみを取り込み、図5に示すよう
なエンベロープを抽出する。
【0035】このレジスタE0にストアしたエンベロー
プ値が前回の処理で検出してレジスタE1に格納したエ
ンベロープ値よりも小さいかどうかチェックし(ステッ
プP5)、NOのとき、すなわち、レジスタE1の値が
レジスタE0の値よりも小さいか、同じときには、エン
ベロープ値が増大傾向にあると判断して、ピークフラグ
を「0」にセットして(ステップP13)、レジスタE
0の値をレジスタE1にストアする(ステップP1
1)。
【0036】そして、全てのデータについてピーク検出
(抽出)が完了したかどうかチェックし(ステップP1
2)、完了していないときには、ステップP2に戻っ
て、データ入力があるのを待って、次のデータについて
BPF処理を行い(ステップP3)。
【0037】同様に、順次、検出したエンベロープ値を
レジスタE0にストアし(ステップP4)、レジスタE
1の値と比較して(ステップP5)、ステップP5での
判断がNOである限り、エンベロープ値が増大傾向にあ
ると判断して、上記同様の処理を行う。
【0038】そして、ステップP5での判断がYESと
なると、今回検出したエンベロープ値(E0)よりも、
前回検出したエンベロープ値(E1)の方が大きいの
で、ピークフラグが「1」であるかどうかチェックする
(ステップP6)。
【0039】いま、ピークフラグには、ステップP13
の処理で「0」がセットされているので、前回検出した
エンベロープ値E1がピーク値であると判断して、ピー
クフラグに「1」をセットし(ステップP7)、レジス
タE1の値が予め設定された特定値Eth以上かどうかチ
ェックする(ステップP8)。
【0040】ステップP8で、NOのときには、テンポ
検出の対象となる音ではないと判断して、レジスタE0
の値をレジスタE1にストアし(ステップP11)、抽
出処理が終了したかどうかチェックする(ステップP1
2)。
【0041】ステップP8で、YESのときには、テン
ポ検出の対象となる音であると判断して、レジスタE1
の値とタイムカウンタTMの値をメモリ5のピーク値領
域PAにストアし(ステップP9)、ポインタIを
「1」だけインクリメントして(ステップP10)、レ
ジスタE0の値をレジスタE1にストアする(ステップ
P11)。
【0042】上記タイムカウンタTMは、所定時間毎に
処理されるクロックインタラプト処理によりインクリメ
ントされる。
【0043】すなわち、クロックインタラプト処理は、
図6に示すように、所定時間毎にインタラプトが入る
と、タイムカウンタTMの値に「1」を加算し、その加
算結果をタイムカウンタTMにストアする(ステップT
1)。
【0044】上記ピーク検出処理を順次繰り返し行い、
入力データの全てについて処理すると、ステップT12
での判断がYESとなり、処理を終了する。
【0045】すなわち、ピーク検出処理では、図4に示
すような音響信号が入力されたとき、BPF処理を施し
て、図5に示すような、エンベロープを得る。そして、
図7に示すように、このエンベロープのピーク値を順次
検出し、さらに、図8に示すように、検出したピーク値
を特定値Ethと比較して、特定値Ethよりも大きいピー
ク値(図8中実線で表示するピーク値E)とそのときの
発生時間を順次メモリ5のピーク値領域PAに格納して
いる。
【0046】〈平均値算出処理〉ピーク検出処理が完了
すると、次に、図2に示したように、平均値算出処理を
行う。
【0047】平均値算出処理は、図9に示すように、ま
ず、ポインタI、ピーク値の累算値を格納するレジスタ
SE及びピーク値の平均値を格納するレジスタMをそれ
ぞれ「0」にセットし(ステップQ1)、ポインタIを
アドレスとしてメモリ5のピーク値領域PAからピーク
値Eを読み出す(ステップQ2)。
【0048】この読み出したピーク値EをレジスタSE
の値に加算して、レジスタSEに格納し(ステップQ
3)、ポインタIを「1」だけインクリメントして(ス
テップQ4)、メモリ5のピーク値領域PAの全データ
について加算処理が終了したかどうかチェックする(ス
テップQ5)。
【0049】ステップQ5で全データについて加算処理
が終了していないときには、ステップQ2に戻って、イ
ンクリメントしたポインタIをアドレスにして、メモリ
5のピーク値領域PAからピーク値Eを読み出し(ステ
ップQ2)、レジスタSEの値に加算して(ステップQ
3)、ポインタIをインクリメントする(ステップQ
4)。
【0050】すなわち、ピーク検出処理で検出したピー
ク値Eを全てメモリ5から読み出して、累算し、その累
算結果をレジスタSEに格納している。
【0051】ステップQ5で、全てのデータについて加
算処理が終了すると、レジスタSEの値をポインタIの
値で除算し、その除算結果(SE/I)をレジスタMに
格納する(ステップQ6)。
【0052】すなわち、ピーク値Eの累算値をデータ数
で除算することにより、ピーク値Eの平均値を算出し、
その平均値をレジスタMに格納している。
【0053】次に、ポインタIとポインタJを「0」に
セットし(ステップQ7)、ポインタIをアドレスとし
てメモリ5のピーク値領域PAからピーク値Eを読み出
す(ステップQ8)。
【0054】そして、この読み出したピーク値Eがレジ
スタMの値、すなわち、平均値以下かどうかチェックし
(ステップQ9)、NOのときには、ピーク値Eが平均
値よりも大きいと判断して、ポインタJの値をアドレス
として、当該ピーク値Eとそのピーク値Eの発生時間を
メモリ5の平均値領域AAに書き込む(ステップQ1
0)。
【0055】次に、ポインタJを「1」だけインクリメ
ントして、全データについて処理が終了したかどうかチ
ェックし(ステップQ12)、全データについて処理が
終了していないときには、ポインタIを「1」だけイン
クリメントして(ステップQ13)、ステップQ8に戻
る。
【0056】同様に、ポインタIをアドレスとして、メ
モリ5のピーク値領域PAからピーク値Eを読み出し
(ステップQ8)、そのピーク値Eが平均値を超えてい
るかどうかチェックする(ステップQ9)。
【0057】平均値を超えていないときには、メモリ5
の平均値領域AAへのピーク値Eの書き込みを行うこと
なく、全データが終了したかどうかチェックし(ステッ
プQ12)、全データの処理が終了していないときに
は、ポインタIをインクリメントして(ステップQ1
3)、同様にインクリメントしたポインタIをアドレス
としてメモリ5から次のピーク値Eを読み出して、同様
に処理する(ステップQ8〜ステップQ13)。
【0058】そして、ステップQ12で、全データの処
理が終了すると、平均値算出処理を終了する。
【0059】すなわち、メモリ5のピーク値領域PAに
は、図10に示すように、ポインタIをアドレスとし
て、検出したピーク値EとそのタイムカウンタTMの値
(発生時間)が記憶されており、平均値算出処理では、
このピーク検出処理で検出したピーク値Eの平均値を算
出し、算出した平均値を超えているピーク値Eを、図1
1に示すように、ポインタJをアドレスとして順次メモ
リ5の平均値領域AAに書き込んでいる。
【0060】〈テンポ算出処理〉平均値算出処理が終了
すると、図2に示すように、次に、テンポ算出処理を行
う。
【0061】テンポ算出処理では、図12に示すよう
に、まず、ポインタI、ポインタJ、ポインタG及びポ
インタQをそれぞれ「0」にセットし(ステップR
1)、ポインタJをアドレスにしてメモリ5の平均値領
域AAから発生時間を読み出して、レジスタAにストア
する(ステップR2)。
【0062】さらに、ポインタJに「1」を加算した値
をアドレスとして、メモリ5の平均値領域AAから発生
時間を読み出し、レジスタBにストアする(ステップR
3)。
【0063】そして、レジスタBの発生時間からレジス
タAの発生時間を減算して、その減算結果(B−A)の
発生時間間隔をレジスタC0に格納し(ステップR
4)、このレジスタC0の値をレジスタCにストアする
(ステップR5)。
【0064】次に、このレジスタCの発生時間間隔で
「60」を除算して、その除算結果(60/C)をレジ
スタDにストアし(ステップR6)、このレジスタDの
値とレジスタBの発生時間をポインタGをアドレスとし
てデータメモリ6にストアする(ステップR7)。
【0065】すなわち、本実施例では、テンポを1分間
の4分音符の数としているので、上記平均値算出処理で
メモリ5の平均値領域AAに格納した平均値を超えるピ
ーク値Eの発生時間間隔を算出し(ステップR4)、こ
の発生時間間隔で「60」を除算して、テンポを算出し
ている(ステップR6)。この算出したテンポとこのテ
ンポの元になる発生時間(レジスタBの値)をデータメ
モリ6に格納している(ステップR7)。
【0066】そして、レジスタKに「1」をセットし
(ステップR8)、レジスタCの値にレジスタC0の値
を加算して、その加算結果をレジスタCに格納する(ス
テップR9)。
【0067】次に、ポインタIの値をアドレスとして、
メモリ5のピーク値領域PAから発生時間を読み出し
て、レジスタHにストアし(ステップR10)、レジス
タCの値が、「15」をレジスタDの値で除算した値を
レジスタHの値から減算した値(H−15/D)と、レ
ジスタHの値に「15」をレジスタDの値で除算した値
を加算した値(H+15/D)と、の間にあるかどうか
チェックする(ステップR11)。
【0068】すなわち、普通の演奏においては、テンポ
が正確に一定していることはなく、多少乱れることとな
るが、この演奏中のテンポの乱れは、通常、15/テン
ポ前後である。そこで、ステップR11により、次のピ
ーク値Eが、このテンポの乱れの許容範囲内にあるかど
うかチェックしている。
【0069】例えば、図13に示すように、いま、メモ
リ5のピーク値領域PAにピーク値としてp1、p2、
・・・・が格納されており、平均値を超えるピーク値と
してp1、p2、p3、p6、p8、p9・・・・がメ
モリ5の平均値領域AAに格納されているとすると、こ
のメモリ5の平均値領域AAの最初のアドレスとその次
のアドレスに格納されているピーク値p1とピーク値p
2の発生時間を読み出して、この2つのピーク値p1、
p2間の発生時間間隔であるレジスタC0の値から求め
たテンポをレジスタDに格納するとともに、このテンポ
とピーク値p2の発生時間をデータメモリ6に格納し
(ステップR1〜ステップR6)、音符を設定するKを
「1」にして(ステップR8)、ピーク値p1とピーク
値p2の時間間隔に、さらに、ピーク値p1とピーク値
p2の時間間隔を加算した時間が、ポインタIをアドレ
スとしてメモリ5のピーク値領域PAから読み出したピ
ーク値、例えば、ピーク値p1の発生時間を中心とした
上記許容範囲内にあるかどうかチェックしている(ステ
ップR11)。
【0070】ステップR11で、NOのときには、ポイ
ンタIを「1」だけインクリメントして(ステップR1
2)、レジスタCの値がレジスタHの値に「15」をレ
ジスタDの値で除算した値を加算した値(H+15/
D)よりも大きいかどうか、すなわち、上記ピーク値p
2からピーク値p1を減算した時間間隔がメモリ5のピ
ーク値領域PAから読み出したピーク値p1の発生時間
よりも大きいかどうかチェックし(ステップR13)、
YESのときには、メモリ5のピーク値領域PAから読
み出したピーク値(例えば、ピーク値p1)が検索対象
となっているピーク値ではないと判断して、ステップR
10に戻る。
【0071】同様に、インクリメントしたポインタIを
アドレスとして次のピーク値の発生時間をメモリ5のピ
ーク値領域PAから読み出してレジスタHにストアし
(ステップR10)、上記同様に、この読み出したピー
ク値の発生時間がテンポとしての許容時間内かどうかチ
ェックする(ステップR11)。
【0072】ステップR11で、YESのときには、テ
ンポの乱れの許容範囲内に次のピーク値があると判断し
て、レジスタKの値に「60」を乗算して、その乗算結
果をレジスタCの値からレジスタC0の値を減算した値
で除算[60×K(C−C0)]することによりテンポ
を算出し、その算出したテンポをレジスタDに格納する
(ステップR23)。
【0073】次に、ポインタGを「1」だけインクリメ
ントし(ステップR24)、インクリメントしたポイン
タGをアドレスとして、上記レジスタDのテンポ及び発
生時間をデータメモリ6に格納する(ステップR2
5)。
【0074】そして、全データについてテンポ算出処理
が終了したかどうかチェックし(ステップR26)、処
理が終了していないときには、ポインタIを「1」だけ
インクリメントして(ステップR27)、ステップR8
に戻る。
【0075】上記同様に、ポインタKに「1」をセット
し(ステップR8)、レジスタCの値にレジスタC0の
値を加算した結果をレジスタCに格納して(ステップR
9)、上記インクリメントしたポインタIをアドレスと
して、メモリ5のピーク値領域PAから発生時間を読み
出してレジスタHに格納する(ステップR10)。
【0076】上記同様に、メモリ5のピーク値領域PA
から読み出したピーク値の発生時間がテンポの許容範囲
内にあると、同様に、テンポを算出してレジスタDにス
トアし(ステップR23)、ポインタGをインクリメン
トした後(ステップR24)、ポインタGをアドレスと
してデータメモリ6に算出したレジスタD内のテンポと
発生時間をストアする(ステップR25)。
【0077】また、ステップR26で、全データが終了
していないと、ポインタIをインクリメントして、同様
に、次のピーク値の発生時間がテンポの許容時間内にあ
るかどうかチェックする(ステップR8〜ステップR1
1)。
【0078】ステップR11で、NOのときには、上記
同様に、ポインタIをインクリメントして(ステップR
12)、レジスタCの値がレジスタHの値に、「15」
をレジスタDの値で除算した値を加算した値(H+15
/D)よりも大きいかどうかチェックする(ステップR
13)。
【0079】ステップR13で、NOのときには、ポイ
ンタKを「1」だけインクリメントして、音符を大きな
値にし(ステップR14)、ポインタKの値が「4」を
超えたかどうかチェックする(ステップR15)。
【0080】ステップR15で、NOのときには、ポイ
ンタIを「0」に戻して(ステップR16)、ステップ
R9に戻る。
【0081】そして、レジスタCの値を上記ピーク値の
発生時間間隔が格納されているレジスタC0を加算して
(ステップR9)、次のピーク値の発生時間をメモリ5
のピーク値領域PAから読み出して(ステップR1
0)、同様に、テンポの発生許容範囲内にあるかどうか
チェックする(ステップR11)。
【0082】ステップR11で、NOのときには、ポイ
ンタIをインクリメントして(ステップR12)、上記
同様に、レジスタHの発生時間の大きさをチェックし
(ステップR13)、ステップR13でNOのときに
は、ポインタKをインクリメントして(ステップR1
4)、ポインタKの値が「4」を超えたかチェックする
(ステップR15)。
【0083】ステップR15で、ポインタKの値が
「4」を超えているときには、ピーク値の発生間隔が音
符の時間間隔の限度を超えたと判断して、ポインタJを
「1」だけインクリメントし(ステップR17)、ポイ
ンタJの値がメモリ5の平均値領域AAに格納されてい
る全データ数を超えたかどうかチェックする(ステップ
R18)。
【0084】ステップR18で、NOのときには、ポイ
ンタJを「1」だけディクリメントして(ステップR1
9)、ステップR3に戻り、「J+1」をアドレスにし
て、メモリ5の平均値領域AAから発生時間を読み出し
て、レジスタBにストアする(ステップR3)。
【0085】このレジスタBにストアした発生時間から
レジスタAにストアされている発生時間を減算して、レ
ジスタC0に格納し(ステップR4)、レジスタCにス
トアし直して(ステップR5)、このレジスタCの発生
時間間隔に対応する位置に、上記同様に、順次メモリ5
のピーク値領域PAに格納されているピーク値があるか
どうかチェックする。
【0086】そして、該当するピーク値があると、レジ
スタCの発生時間間隔から演算したテンポをデータメモ
リ6に格納し(ステップR22〜ステップR25)、ポ
インタIをインクリメントして(ステップR27)、順
次メモリ5のピーク値領域PA内のピーク値について同
様に検索する(ステップR8〜R11)。
【0087】また、該当するピーク値がないときには、
上記ステップR12からステップR19の処理を順次行
う。
【0088】ステップR18で、ポインタJの値が全デ
ータ数に達すると、ポインタQを「1」だけインクリメ
ントし(ステップR20)、ポインタJを「0」にリセ
ットする(ステップR21)。
【0089】このポインタJの値とポインタQの値を加
算して、ポインタJにセットし(ステップR22)、ス
テップR2に戻って、加算したポインタJの値をアドレ
スとして、メモリ5の平均値領域AAから発生時間間隔
を読み出して、レジスタAにストアする(ステップR
2)。
【0090】すなわち、メモリ5の平均値領域AAの先
頭アドレスと次のアドレスに格納されているピーク値の
発生時間の時間間隔に基づいてテンポを求め、このテン
ポに対応する発生時間にメモリ5のピーク値領域PAに
ピーク値が格納されていると、そのテンポと発生時間を
データメモリ6に格納する。
【0091】そして、このテンポに対応する発生時間に
メモリ5のピーク値領域PAにピーク値が格納されてい
ないと、音符が異なる発生時間にピーク値が格納されて
いるかどうかチェックし、ピーク値があると、その発生
時間とテンポをデータメモリ6に格納する。
【0092】また、音符が異なる発生時間についての検
索が終了すると、先頭アドレスと次の次のアドレスに格
納されている発生時間の時間間隔に基づいて同様に処理
し、この処理を先頭アドレスを固定して、発生時間間隔
が広がるように順次加算したアドレスのピーク値の発生
時間との時間間隔について同様に処理する。
【0093】そして、アドレスの加算がメモリ5の平均
値領域AAに格納されている最後のピーク値のアドレス
まで進むと、先頭アドレスを1つ繰り上げ、この先頭ア
ドレスと次のアドレスのピーク値の発生時間について上
記同様に処理する。
【0094】この先頭アドレスの繰り上げを順次行いつ
つ、処理を行って、ステップR26で、全データの処理
が完了すると、テンポ算出処理を終了する。
【0095】すなわち、テンポ算出処理では、例えば、
図13に示すように、メモリ5の平均値領域AAに格納
されているピーク値p1とピーク値p2との発生時間間
隔に対応するテンポについてメモリ5のピーク値領域P
Aに格納されているピーク値p1からピーク値p9の発
生時間が、許容範囲内にあるかを検索し、該当する発生
時間のピーク値があると、その発生時間とテンポをデー
タメモリ6に格納する。
【0096】そして、メモリ5のピーク値領域PAに格
納されている全データについて処理が終了すると、メモ
リ5の平均値領域AAに格納されているピーク値p1と
ピーク値p3との発生時間間隔について同様に処理し、
この処理が終了すると、ピーク値p1とピーク値p4と
の発生時間間隔について同様に処理する。
【0097】上記処理をメモリ5の平均値領域AAに格
納されている最終データまで処理すると、次に、ピーク
値p2とピーク値p3との発生時間間隔について同様に
処理する。
【0098】このようにして、メモリ5の平均値領域A
Aに格納されている全データについて順次処理を行っ
て、全データの処理を完了すると、図14示すように、
データメモリ6には、横実線で示すテンポとその発生時
間との関係のデータが格納される。
【0099】こうしてメモリ6に格納されたテンポのデ
ータに基づいてクロック生成部8からテンポに対応する
クロック信号を外部機器10に出力し、外部機器10の
同期を取ることができる。
【0100】このように、テンポデータ生成装置1によ
れば、プレイヤー9から入力される音響信号の特定周波
数帯のレベルを周波数フィルタ3で抽出し、抽出したレ
ベルのうち所定レベル以上の音響信号のピーク値と発生
時間を順次メモリ5のピーク値領域PAに記憶する。こ
の記憶されたピーク値の平均値をクロックシーケンスコ
ンポーザ7で算出し、メモリ5のピーク値領域PAに記
憶されたレベルのピーク値のうち、算出した平均値を超
えるピーク値をメモリ5の平均値領域AAに記憶する。
そして、このメモリ5の平均値領域AAのピーク値をア
ドレス順に2個選択し、選択した2個のレベルの発生間
隔毎に、メモリ5のピーク値領域PAに記憶した他のレ
ベルが存在するか否かを検索する。他のレベルのピーク
値が該発生間隔毎に存在しているときには、該発生間隔
に基づいてテンポデータを生成し、他のレベルが該発生
間隔毎に存在しないときには、メモリ5のピーク値領域
PAに記憶した他のレベルを選択して、同様に検索す
る。
【0101】したがって、楽器等のプレイヤー9の生の
演奏の音響信号から正確にテンポを検出して、テンポデ
ータを生成することができ、このテンポデータに基づい
てシーケンサ等の外部機器10の同期を取ることができ
る。
【0102】
【発明の効果】本発明によれば、楽器等の生の演奏の音
響信号から正確にテンポを検出して、テンポデータを生
成することができ、このテンポデータに基づいてシーケ
ンサ等の外部機器の同期を取ることができる。
【図面の簡単な説明】
【図1】本発明のテンポデータ生成装置の一実施例のブ
ロック構成図。
【図2】図1のテンポデータ生成装置のメイン処理を示
すフローチャート。
【図3】図2のピーク検出処理の詳細な処理を示すフロ
ーチャート。
【図4】入力される音響信号の波形図。
【図5】図4の音響信号のエンベロープ信号の波形図。
【図6】図1のテンポデータ生成装置によるクロックイ
ンタラプト処理を示すフローチャート。
【図7】図5のエンベロープ信号のピーク値を検出する
処理を説明する図。
【図8】図7のピーク値のうち特定値Ethを超えるピー
ク値を抽出する処理を説明する図。
【図9】図2の平均値算出処理の詳細な処理を示すフロ
ーチャート。
【図10】図1のメモリのピーク値領域PAのピーク値
Eと発生時間の格納状態を示す図。
【図11】図1のメモリの平均値領域AAのピーク値E
と発生時間の格納状態を示す図。
【図12】図2のテンポ算出処理の詳細な処理を示すフ
ローチャート。
【図13】図1のメモリ5の平均値領域AAに格納され
ているピーク値Eと平均値及び発生時間の関係を示す
図。
【図14】図13のピーク値Eから算出したテンポと発
生時間との関係を示す図。
【符号の説明】
1 テンポデータ生成装置 2 CPU 3 周波数フィルタ 4 音量レベルフィルタ 5 メモリ 6 データメモリ 7 クロックシーケンスコンポーザ 8 クロック生成部 9 外部機器

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】入力される音響信号の特定周波数帯のレベ
    ルを抽出する抽出手段と、 前記抽出手段で抽出されたレベルのピーク値と発生時間
    を順次記憶する記憶手段と、 前記記憶手段に記憶されたレベルのピーク値の平均値を
    算出する算出手段と、 前記記憶手段に記憶されたレベルのピーク値のうち、前
    記算出手段により算出された平均値を超えるピーク値の
    レベルを2個選択する選択手段と、 前記記憶手段に記憶された他のレベルが前記選択手段に
    より選択された2個のレベルの発生間隔毎に存在するか
    否かを検索する検索手段と、 前記検索手段が他のレベルが前記発生間隔毎に存在して
    いると検知したときに、該発生間隔に基づいてテンポデ
    ータを生成するテンポデータ生成手段と、 前記検索手段が他のレベルが前記発生間隔毎に存在しな
    いと検知したときに、前記選択手段に前記記憶手段から
    他のレベルを選択させる再選択手段と、 を備えたことを特徴とするテンポデータ生成装置。
  2. 【請求項2】前記記憶手段は、前記抽出手段により抽出
    されたレベルのうち、特定値以上のピーク値を有するレ
    ベルのピーク値のみを記憶することを特徴とする請求項
    1記載のテンポデータ生成装置。
  3. 【請求項3】入力される音響信号の特定周波数帯のレベ
    ルを抽出する抽出処理と、 前記抽出処理により抽出されたレベルのピーク値と発生
    時間を順次記憶する記憶処理と、 前記記憶処理により記憶されたレベルのピーク値の平均
    値を算出する算出処理と、 前記記憶処理により記憶されたレベルのピーク値のう
    ち、前記算出処理により算出された平均値を超えるピー
    ク値のレベルを2個選択する選択処理と、 前記記憶処理により記憶された他のレベルが前記選択処
    理により選択された2個のレベルの発生間隔毎に存在す
    るか否かを検索する検索処理と、 前記検索処理で他のレベルが前記発生間隔毎に存在して
    いると検知されたときに、該発生間隔に基づいてテンポ
    データを生成するテンポデータ生成処理と、 前記検索処理で他のレベルが前記発生間隔毎に存在しな
    いと検知されたときに、前記選択処理により前記記憶処
    理で記憶された他のレベルを選択させる再選択処理と、 を備えたことを特徴とするテンポデータ生成方法。
  4. 【請求項4】前記記憶処理は、前記抽出処理により抽出
    されたレベルのうち、特定値以上のピーク値を有するレ
    ベルのピーク値のみを記憶することを特徴とする請求項
    3記載のテンポデータ生成方法。
JP23410393A 1993-08-25 1993-08-25 テンポデータ生成装置及びテンポデータ生成方法 Expired - Fee Related JP3455757B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP23410393A JP3455757B2 (ja) 1993-08-25 1993-08-25 テンポデータ生成装置及びテンポデータ生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23410393A JP3455757B2 (ja) 1993-08-25 1993-08-25 テンポデータ生成装置及びテンポデータ生成方法

Publications (2)

Publication Number Publication Date
JPH0764544A JPH0764544A (ja) 1995-03-10
JP3455757B2 true JP3455757B2 (ja) 2003-10-14

Family

ID=16965682

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23410393A Expired - Fee Related JP3455757B2 (ja) 1993-08-25 1993-08-25 テンポデータ生成装置及びテンポデータ生成方法

Country Status (1)

Country Link
JP (1) JP3455757B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7373209B2 (en) 2001-03-22 2008-05-13 Matsushita Electric Industrial Co., Ltd. Sound features extracting apparatus, sound data registering apparatus, sound data retrieving apparatus, and methods and programs for implementing the same
JP3674950B2 (ja) * 2002-03-07 2005-07-27 ヤマハ株式会社 音楽データのテンポ推定方法および装置
JP4650662B2 (ja) 2004-03-23 2011-03-16 ソニー株式会社 信号処理装置および信号処理方法、プログラム、並びに記録媒体
JP5012263B2 (ja) * 2007-07-04 2012-08-29 ヤマハ株式会社 演奏クロック生成装置、データ再生装置、演奏クロック生成方法、データ再生方法およびプログラム
JP5012269B2 (ja) * 2007-07-10 2012-08-29 ヤマハ株式会社 演奏クロック生成装置、データ再生装置、演奏クロック生成方法、データ再生方法およびプログラム

Also Published As

Publication number Publication date
JPH0764544A (ja) 1995-03-10

Similar Documents

Publication Publication Date Title
JP3245890B2 (ja) 拍検出装置及びそれを用いた同期制御装置
JP2004533016A (ja) 楽譜追跡方法およびその装置
WO2004029927A2 (en) System and method for generating an audio thumbnail of an audio track
JPS619883A (ja) 同期合奏演奏装置における同期信号発生装置
CA1130922A (en) Digital waveform generating apparatus
JP3455757B2 (ja) テンポデータ生成装置及びテンポデータ生成方法
JP3252497B2 (ja) 波形データ編集装置
JPH0415959B2 (ja)
JP3132038B2 (ja) 和音判別装置及びそれを用いた自動伴奏装置
JP3127406B2 (ja) テンポ検出装置
JP2007072023A (ja) 情報処理装置及び情報処理方法
JPS58224387A (ja) 楽譜表示装置
JP3185266B2 (ja) 楽音発生装置
JP3714397B2 (ja) 波形データ処理装置及び波形データ処理方法
JP3178176B2 (ja) 自動伴奏装置
JP3740717B2 (ja) 音源装置及び楽音生成方法
JP2727684B2 (ja) 楽音合成装置
US6421637B1 (en) Pitch shifting apparatus and method
JP3168708B2 (ja) 音階検出装置
JPH04141693A (ja) 音楽の同期信号生成装置
JPH0413187A (ja) ボイスチェンジャー機能付楽音発生装置
JPH048081A (ja) 音楽画像情報処理装置
JPH0476120B2 (ja)
JPH0916169A (ja) 自動演奏装置
JPH0566779A (ja) 楽音発生装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080801

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20080801

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090801

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100801

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110801

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120801

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees