JP2599363B2 - ループ領域自動決定装置 - Google Patents

ループ領域自動決定装置

Info

Publication number
JP2599363B2
JP2599363B2 JP60280689A JP28068985A JP2599363B2 JP 2599363 B2 JP2599363 B2 JP 2599363B2 JP 60280689 A JP60280689 A JP 60280689A JP 28068985 A JP28068985 A JP 28068985A JP 2599363 B2 JP2599363 B2 JP 2599363B2
Authority
JP
Japan
Prior art keywords
address
data
output
latch
loop
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 - Lifetime
Application number
JP60280689A
Other languages
English (en)
Other versions
JPS62139588A (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 JP60280689A priority Critical patent/JP2599363B2/ja
Publication of JPS62139588A publication Critical patent/JPS62139588A/ja
Application granted granted Critical
Publication of JP2599363B2 publication Critical patent/JP2599363B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】 [発明の技術分野] この発明は、予めメモリに記憶されているサンプリン
グ波形データ内の繰り返し読み出すためのループ領域を
決定するループ領域自動決定装置に関する。
[発明の背景] ループ読出し機能を有する従来のサンプリング電子楽
器では、ループ領域(サンプる音メモリ上のくり返し読
み出されるアドレス領域)の設定は、使用者の判断に基
いて行なわれている。代表的には、サンプリング領域に
記憶させたサンプル音の波形データ列をディスプレイ上
等に表示して、どこをループエンドアドレスとし、どこ
をループリターンアドレスにすればうまくループがつな
がるかを使用者の判断にまかせ、キー操作等により使用
者の指定したアドレス(ポイント)をマシンに知らせる
ことでループ領域を決めている。
この種のループ領域のセッティングは人手を煩わせ、
複雑な操作を必要とするため、自動的にループ領域をマ
シンがセットしてくれるものが望まれている。
しかし、自動化ループ設定機能の導入には問題があ
る。すなわち、サンプリング領域に含まれ得る無音領域
がループのつなぎ目の前後に入らないようにし、また、
ループのつなぎ目のところで、クリック音と呼ばれるノ
イズが発生しないよにしなければならない等の問題があ
るが、これらの問題は目下のところ、自動方式では解決
が非常に困難であるとされている。
[発明の目的] この発明は上記の事情に鑑みてなされたもので、その
目的とするところは、無音状態やクリック音が発生しに
くいようなループ領域を自動的に決定するループ領域自
動決定装置を提供することにある。
[発明の要点] この発明は、上記目的を達成するために、複数のアド
レスにわたってメモリに記憶されている波形のうちの1
つのゼロクロスポイントに対応するアドレスを第1のア
ドレスとして記憶するとともに、この第1のアドレスに
おける波形データの変化方向と波形データの変化方向が
同じで、かつ上記第1のアドレスとは異なるアドレスで
のゼロクロスポイントを検出し、この検出されたゼロク
ロスポイントに対応するアドレスを第2のアドレスとし
て記憶するようにして、さらに、上記記憶された第1の
アドレスおよび第2のアドレスの間のアドレスを循環さ
せて、上記メモリ内の波形データの少なくとも一部を繰
り返し読み出すようにしたことを要点とする。
[発明の作用] 第1図はこの発明の概略図を示す。サンプリング時に
は外部音(サンプル音)が波形データ列として予め設定
されたサンプル記憶手段aのサンプリング領域に録音さ
れる。サンプリング領域は予め設定された大きさないし
長さしかないため、外部音の実際の時間の長さとは一致
しない。外部音の方が長ければ外部音が鳴り終わる前に
サンプリング領域の終端(エンドアドレス)に達してし
まい外部音は途中から録音されないことになる。逆に外
部音の方が短かければサンプリング領域の端の近くは無
音の空データが記憶されてしまう。読出ループ領域には
このような無音領域はあってはならない。さらに、ルー
プのつなぎ目のところでデータの変化が著しいとクリッ
ク音のノイズとなってしまう。これらを解除するため、
第1ゼロクロスポイント及び位相判別手段bは、サンプ
リング領域を検索し、そのゼロクロスポイント(第1ゼ
ロクロスポイント)を見つけ、さらにゼロクロスポイン
トにある波形データの位相を判別する。ここに「位相」
とは、データ列の増域の性質を表し、この場合、増加と
減少とは位相が異なるという。同相の第2ゼロクロスポ
イント判別手段cはサンプリング領域を検索し、第1ゼ
ロクロスポイントにおけるデータの位相と同じ相を有す
る第2ゼロクロスポイントを見つける。上記の第1ゼロ
クロスポイントと第2のゼロクロスポイントはループ接
続位置設定手段dにより、ループのつなぎ目のポイント
として設定される。例えば第1ゼロクロスポイントをル
ープ読出モードでのループリターンアドレスとして、第
2ゼロクロスポイントをループリターンアドレスへつな
がれるループエンドアドレスとして設定する。
ループ読出しモードでは、ループエンドアドレスまで
波形データが読み出されると、ループリターンアドレス
に戻り、そこから順次アドレスがインクリメントされて
再びループエンドアドレスに達すると、再度ループリタ
ーンアドレスに戻るというかたちでくり返しループ領域
にあるデータが読み出される。
この発明によれば、ループをつなぐ同士のデータは共
にゼロクロスデータであり、かつその位相すなわち増減
の性質が同じであるから放音時での無音状態やクリック
音の発生を大幅に減らすことができる。
[実施例] 以下、図面を参照してこの発明の一実施例を説明す
る。説明は、全体構成、放音機能、CPUデータ読出動
作、CPUデータ書込動作、サンプリング動作、ループ設
定動作の順で行う。
ループ設定動作がこの発明と直接関係ある動作であ
る。
全体構成 第2図は実施例の全体構成図である。要素1、2、
3、4を除く部分が音源回路でありCPU2の制御の下に各
部が駆動される。この音源回路は、大きく分けて、音を
波形データ列として記憶する音源メモリ100、この音源
メモリ100をアクセスするアドレスを与えるアドレス生
成回路101、アドレス生成回路101に含まれるアドレス歩
進回路の歩進速度(したがって音程)を調整する音程調
整回路102、音源RAM(サンプルメモリ)へサンプルデー
タを入力するためのサンプリング入力回路103、音源メ
モリ100からの音色波形データを最終的な音として出力
する出力回路104、音源回路の動作モードを指定するた
めのモードフラグ回路より成る。
音源メモリ100は、ここでは、サンプル音等を記憶す
るRAM11は、組込音(プリセットトーン)を記憶するROM
10より成る。
アドレス生成回路101は、外部音のサンプリングや、
内部音データの出力(放音)の際に用いるアドレス歩進
回路を備え、その主要素としてスタートアドレスラッチ
5、エンドアドレスラッチ6、リターンアドレスラッチ
7、アドレスカウンタ18、一致回路19がある。なおリー
ドライトアドレスラッチ27はCPU2と音源メモリ100間の
データ転送に用いられる。上記アドレス歩進回路はサン
プル音での演奏を行う場合には、RAM11に対するループ
アドレス生成回路として働く。
音程調整回路102は周波数設定ラッチ12、周波数カウ
ンタ13、インクリメント回路14、出力アンドゲートA1等
より成り、上記アドレス歩進回路のアドレス歩進速度を
与える。したがってキー操作部1内の音階キーボード
(いわゆる鍵盤)で演奏を行うときは、音階キーの音程
(ピッチ)を与えるような速度でアドレス歩進回路に対
し歩進信号を供給する。また、外部音をサンプリングす
るときは、歩進信号はいわゆるサンプリング同期ごとに
発生し、音程調整回路102はサンプリング周波数発生回
路として働く。
サンプル入力回路103はマイク34、アンプ35、A/Dコン
バータ30等より成り、A/Dコンバータ30はサンプリング
周期ごとにサンプル音のアナログ信号をディジタルの波
形データに変換出力し、変換出力をサンプルRAM11へ入
力する。出力回路104は音源メモリ100と動作結合する出
力データラッチ16、D/Aコンバータ17、音色データにエ
ンベロープを選択的に付与するエンベロープ付与回路
(エンベロープラッチ25、D/Aコンバータ26、乗算回路2
2より成るもの)、アンプ23及びスピーカ24により基本
的に構成される。
音源回路は、その基本的な動作モードとして、CPU2が
音源メモリ100よりデータを読み込むリードモード、CPU
2より音源メモリ100へデータを書き込むライトモード、
サンプル入力回路103よりサンプル音の波形データをRAM
11へ入力する入力モード、音源メモリ100にある波形デ
ータ列を読み出し、出力回路104を通して放音させる放
音モードがある。リードフラグ28とのその周辺回路はリ
ードモードの指定に使用されるモード回路であり、リー
ドフラグ28はリードモード時はオン(論理“1")にセッ
トされる。ライトフラグ36とその周辺回路はライトモー
ドの指定に使用される回路であり、ライトフラグ36はラ
イトモードのときオンにセットされる。入力モード下で
はオンフラグ15とA/Dフラグ21がオン状態に置かれる。
また放音モードではオンフラグ15のみがオン状態にな
る。
音源回路以外の部分について、音源回路との関係を含
めて、簡単に述べると、1はキー操作部であり、音階キ
ーボード(鍵盤)の他に各種制御キー(音色選択キー、
サンプリングスタート用のサンプリングキー、ループキ
ー等々)から構成されている。CPU2は制御部でキー操作
部1のキーのオン、オフを検出し、各キーに対応した処
理を音源回路に指令する。3はインターフェイス回路で
あり、CPU2と音源回路とのデータ伝送方向の制御等を行
う。オペレーションデコーダ4はCPU2からの指令を解読
し、音源回路の各種ラッチ(スタートアドレスラッチ
5、エンドアドレスラッチ6、リターンアドレスラッチ
7等々)に与えるラッチクロックやゲート制御信号等を
出力する。CPU2はデータバスDBに各種ラッチにセットし
たいデータを乗せた状態でオペレーションデコーダ4へ
指令を送り、対応するラッチクロックを出力させること
により、選択したラッチに選択したデータをセットする
ことができる。さらにCPU2はオペレーションデコーダ4
に指令を送り、メモリリード信号RMEMを出力させて、G8
をコントロールしてリードデータラッチ8のデータを読
みとることができる。このときインターフェイス回路3
はでーた方向を音源回路からCPUの向きに切り換えてい
る。G1〜G10は3ステイトバッファで構成させるバス開
閉スイッチであり、そのコントロール入力Cが“1"のと
きオンで、入力をそのまま出力し、“0"のときオフで出
力をハイインピーダンスの状態にする。9はクロック発
生回路であり、φ、φという2つの交互のパルスを
発生する(第3図参照)。オペレーションデコーダ4か
ら出力されるクロック信号CKはすベてφのパルスに同
期している。
放音機能 次に音源回路の基本的機能である放音機能及びその動
作を中心として説明する。
音源回路はメモリROM10やRAM11に書かれた波形データ
を音階キーに対応した時間ごとに読み出しアナログに変
換することにより音を出す。例として8bitのデータ8個
(実際にサンプルされる波形データの数はこれよりはる
かに多いが、作図の便宜上8個とした)から構成される
波形を第4図のAとBに示す。Aはメモリ上のアドレス
とそれに対応するデータの関係であり、Bはのデータを
時間tごとに読み出した時の出力アナログ波形である。
ここでtは音程(ピッチ)を決定する時間であり、tを
2倍にすれば1オクターブ低い音1/2倍すれば1オクタ
ーブ高い音になる。このtを調節する回路が周波数設定
ラッチ12、周波数カウンタ13、インクリメント回路14等
である。オンフラグ15は発音する時“1"発音しない時
“0"にセットするラッチである。今、音が鳴っていない
としてオンフラグ15出力=0とする。この状態でキー操
作部1のある音階キーが押されたとすると、CPU2は周波
数設定ラッチ12にその音程に対応したデータをセットす
る。オンフラグ15出力=0→R1出力=1なのでDG2=O
N、G1=OFFとなり周波数カウンタ13は周波数設定ラッチ
12のデータがロードされる(周波数カウンタ13、2FF等C
K1、CK2を持つものは2相フリップフロップF/FでありCK
1で読み込みCK2で出力するものとする)。例えば、今、
周波数設定ラッチ12のデータが80(H)だとすると周波
数カウンタ13出力も80(H)となりアンドゲートA1の出
力=0となる。ここでオンフラグ15に1をセットすると
オアゲートR1出力=0、G2=OFF、G1=ONとなる。イン
クリメント回路14では+1入力が常に1にしてあるため
常に+1されることになる。したがってオンフラグ15が
1となった次のφで81(H)が周波数カウンタ13に読
み込まれ次のφで出力される。以後これを繰り返しFF
(H)が出力されるまで続き、FF(H)が出力されると
A1出力=1、G1=OFF、G2=ONとなり再び周波数設定ラ
ッチ12から周波数カウンタ13に80(H)がロードされ
る。これらを繰り返すことによってA1出力は80(H)〜
FF(H)の間に一回“1"を出すタイマーとなる。この間
隔が第4図Cのtにあたる。同図のDに同図のCと対応
する形でオンフラグ15の動きを示す。同図のCはアナロ
グ波形出力データラッチ16の出力側にあるD/Aコンバー
タ17の出力を表わすが、オンフラグ15が0のときはイン
バータI2出力=1→出力データラッチ16のリセット1と
なり出力データラッチ16出力=オール0である(出力デ
ータラッチ16等に示すRはリセット入力で“1"のときリ
セット)。D/Aコンバータ17のMSB入力はI6を通るのでこ
のときD/Aコンバータ17出力は中央の電位を示すことに
なる。またこの回路ではメモリ(ROM10やRAM11)から波
形を読み出す最初のアドレス(スタートアドレス)、そ
れ以後のアドレスを読まない最後尾アドレス(エンドア
ドレス)、最後尾アドレスまで進んだ後に前にもどって
読み始める戻り先アドレス(リターンアドレス)を持
ち、それぞれスタートアドレスラッチ5、エンドアドレ
スラッチ6、リターンアドレスラッチ7にセットされ
る。ある波形を読み出す際のこれらの関係の例を第5図
に示す。スタートアドレスラッチ5にセットされたアド
レスをインクリメントしてエンドアドレスまで読むとリ
ターンアドレスにもどり再びエンドアドレスまでアドレ
スをインクリメントして読む。以後これをオンフラグ15
出力=0になるまで繰り返す。オンフラグ15出力=0の
時、I2出力=1、ノアゲートNR1、NR2出力=0なのでG4
=ON、G3、G5=OFFであり、この間に2相F/F群より成る
アドレスカウンタ18にはスタートアドレスラッチ5のデ
ータがロードされる。この時周波数。カウンタ13には前
述のとおり周波数設定ラッチ12のデータがロードされて
いる。一致回路19は2組の入力が一致した時に1を出力
する回路であり、今はアドレスカウンタ18のデータ(=
スタートアドレスラッチ5のデータ)=エンドアドレス
ラッチ6のデータなのでその出力は0である。ここでオ
ンフラグ15出力=1にすると、I2出力=0、G4=OFF、
一致回路19出力=0→アンドゲートA5出力=0よりG5=
ON、インバータI4出力=1によりG3=OFFとなりアドレ
スカウンタ18の出力はインクリメント回路20を通ってア
ドレスカウンタ18に戻る。オンフラグ15出力が1になっ
た直後は周数カウンタ13のデータはインクリメントを始
めたばかりでA1出力=0→アンドゲートA2出力=0→イ
ンクリメント回路20の+1入力=0でアドレスカウンタ
18のデータはインクリメントされない。また出力データ
ラッチ16のR入力はオンフラグ15出力=1になると同時
にキー操作部1となってはいるがA2出力=0のためアン
ドゲートA7出力=0で出力データラッチ16へのクロック
CKは出ずD/Aコンバータ17の出力は中央電位のままであ
る。やがて周波数カウンタ13のデータがオール1となる
とA1出力=1、A2出力=1インクリメント回路20の+1
入力=1となり同時にG7=ONNとなってアドレスカウン
タ18のデータがアドレスバスABを通ってメモリのアドレ
スADに送られる。A2出力=1により、インバータI3出力
=0→A3出力=0、また音を鳴らす時にはA/Dフラグ21
の出力=0とするためオアゲートR2出力=0→メモリの
出力エネーブル▲▼=0、したがってメモリのスタ
ートアドレスよりデータがRAM11の出力I/OまたはROM10
の出力OUTから出力される。ただし、RAM11はそのチップ
選択入力▲▼=0かつ▲▼=0のときデータを
出力し、ROM10はそのチップ選択入力▲▼=0、▲
▼=0のときデータを出力する。RAM11とROM10の▲
▼はインバータI8を通って反転しているため同時に
アクセスされることはないものとする。ここでA2出力=
1によりA7に出力φ同期のパルスが1つ発生しメモリ
から出されたデータを出力データラッチ16に読み込ませ
る。これがD/Aコンバータ17によりアナログ値に変換さ
れ乗算回路22よりエンベロープと乗算されアンプ23より
スピーカ24を通して出力される。一方インクリメント回
路20を通って+1されたアドレスはφでアドレスカウ
ンタ18に読み込まれ、φでG7を通してメモリのアドレ
ス入力ADに入力され▲▼=0となることによりメモ
リから波形データが出力され、さらに出力データラッチ
16のCKにパルスが入ることでそのデータがCPUデータラ
ッチ16にラッチされ、D/Aコンバータ17→乗算回路22→
スピーカ24を通して音出力となる。そしてこの一連の動
作をくり返す度にアドレスカウンタ18内のデータは+1
されて行き、アドレスカウンタ18の内容=エンドアドレ
スラッチ6の内容となって、さらにもう一度一連の動作
がくり返されると一致回路19の出力=1、A2の出力=1
のためA5出力=1でNR2出力=0→G5=OFF、I4出力=
0、NR1出力=1(オンフラグ15の出力=1のため)→G
30Nとなる。したがってエンドアドレスに対応データが
出力データラッチ16にラッチされているときにはリター
ンアドレスラッチ7内のデータがアドレスカウンタ18に
読み込まれ、メモリのアドレスの戻りが実現される。こ
れ以後はオンフラグ15に0がセットされるまでリターン
アドレスからエンドアドレスまでのデータをくり返し出
力することになる。なお、リターンアドレスとエンドア
ドレスを同一の値にセットした場合は、ハード的に、エ
ンドアドレスのところでアドレスが停止する。また当然
のことだが、途中のアドレスからエンドアドレスまでが
無音領域(10000000のデータの領域)となっている場合
は、途中のアドレス以降はD/Aコンバータ17の出力は中
央電位となってしまうため、事実上スピーカ24からは何
も出力されず消音状態となる。乗算回路22はa入力波形
の振幅をb入力電位に応じて伸長または圧縮する乗算回
路であり、メモリから読み出した波形にエンベロープを
かける時にはCPU2が出力が希望する振幅となるような値
をエンベロープラッチ25にCK(ENV)を介してセットす
る。エンベロープラッチ25の値はD/Aコンバータ26によ
りアナログ電圧に変換され乗算回路22の伸長率ないし圧
縮率入力となる。
CPUデータ読出動作 次にCPUがメモリ内のデータを読み出す場合の動作に
ついて説明する。
まずオンフラグ15の内容=0つまり発音していない場
合について述べる。リードフラグ28=1、ライトフラグ
36=A/Dフラグ21=0とセットする。オンフラグ15=0
→I2出力=1→G2ONにより、周波数カウンタ13には周波
数設定ラッチ12のデータがロードされるのでA1出力=0
→A2出力=0→I3出力=1となりアンドゲートA4=1で
あるからアンドゲートA6出力よりφに同期したパルス
が出力されリードデータラッチ8に入力がとりこまれ
る。この時A2=0なのでG7=OFF、G60N(インバータI5
のため)となりメモリのアドレスADにはリードライトア
ドレスラッチ27が入力され、またライトフラグ36=0に
よりアンドゲートA3=0かつA/Dフラグ21=0よりアン
ドゲートA8=0→R2出力=0で▲▼=0となりリー
ドライトアドレスラッチ27によって指定されたデータが
出力される。そこでリードライトアドレスラッチ27にあ
らかじめメモリ内の読み出したいアドレスをセットして
おき、ライトフラグ36、A/Dフラグ21=0、リードフラ
グ28=1をセットすれば、メモリ内の指定したアドレス
のデータをリードデータラッチ8に読み込ませることが
できる。その後でCPU2はオペレーションデコーダ4にRM
EM=1を出力させG8をONとすることでリードデータラッ
チ8内のデータをバスDBを通して読むことができる。ま
たアドレスカウンタ18にセットされた1はリードデータ
ラッチ8への読み込みクロックと同時のφで2FF29に
読み込まれ次のφで出力されることによりリセットさ
れリードフラグ28=0となるためリードデータラッチ8
の読み込みクロックが2発以上でるのを防ぐ。またオン
フラグ15=1(発音中)の場合は上記の動作を出力デー
タラッチ16が波形データを読み込むサイクルまたはA/D
コンバータ30からのデータを書き込みサイクル(後述)
(φから次のφまでを1サイクルと呼ぶものとす
る)以外のサイクルで行なうことなる。すなわちA1出力
=1となるのは波形データ読み込みサイクルとA/Dコン
バータ30の書き込みサイクルの時だけでありそれ以外は
0なので、A1出力=0のサイクルにA2=0となることで
上の動作が行なわれる。
CPUデータ書込動作 次にCPU2がRAM11にデータを書き込む場合の動作につ
いて説明する。リードライトアドレスラッチ27に書き込
みたいアドレス、ライトデータラッチ31に書き込みたい
データをセットする。その後ライトフラグ36=1とセッ
トすると先の読み出しの場合と同様にオンフラグ15=0
のときはセット直後のサイクルでオンフラグ15=1の時
は波形データ読み込みサイクルまたはA/Dコンバータ30
の書き込みサイクル以外のサイクルでA3出力=1→R2=
1となる。この時G9=ONとなり▲▼が1となること
でライトデータラッチ31のデータがRAM11のI/Oに入力さ
れナンドゲートNA1によりφ同期のロウアクティブパ
ルスが書込エネーブル▲▼に入力される。またこの
時にはG7=OFF、G6=ONとなっているのでリードライト
アドレスラッチ27にセットされたアドレスにライトデー
タラッチ31にセットされたデータが書き込まれることに
なる。このRAM11へのCPU書き込みサイクルは2FF32によ
り読み出しと同様にして1サイクルだけになる。
サンプリング動作 次にサンプリングの場合の動作について説明する。ま
ずCPU2は以下のデータを各ラッチにセットする。
周波数設定ラッチ12にサンプリング周波数に対応する
値。スタートアドレスラッチ5にサンプリング領域のス
タートアドレス。エンドアドレスラッチ6にサンプリン
グ領域のエンドアドレス。リードアドレスラッチ7にエ
ンドアドレスラッチ6と同じ値。その後でオンフラグ15
=1、A/Dフラグ21=1とする。オンフラグ15=1より
周波数設定ラッチ12はカウントを開始し、A1は出力はサ
ンプリング周期ごとに1となりその信号でアドレスカウ
ンタ18にセットされている値をアドレスバスABに出力し
ながらインクリメント回路20を通してインクリメントす
る。アドレスカウンタ18からアドレスバスABに出力され
るサイクルではA/Dフラグ21=1により、A8出力=1→R
2=1となり、NA1からφ同期パルスが▲▼に入
り、I/OのデータがRAM11の指定アドレスに書き込まれ
る。A/Dコンバータ30はTRIGERにパルスが入ると前回のT
RIGER入力時にA/D変換した値をOUTに出力させ新たにA/D
変換を開始する。なお、2FF33はA/Dコンバータ30のTRIG
ER入力にひげのないきれいなパルスをRAM11の書込サイ
クルと矛盾なく入れるためのものである。ところで、A/
Dコンバータ30よりRAM11へ入る最初の2個分のデータは
今回のサンプリング音のデータではない。そしてCPU2は
サンプリングアドレスが上記(イ)で指定したスタート
アドレスより2つ多い値になると、サンプリング音の本
当のデータの開始を検出するためアドレスを(スタート
アドレス+2)に固定した状態で、A/Dコンバータ30よ
りRAM11へ書き込まれたデータをCPU2内に取り込み、デ
ータのゼロクロスの発生の有無をチェックする。具体的
にいえば、CPU2はA/Dコンバータ30の書込サイクルがな
された後、次の書き込みサイクルとなるまでの間に、オ
ンフラグ15をオフにして上述したメモリ(ここではRAM1
1)よりデータを読み出す処理を行い、読み込んだデー
タがあるレベル(例えばA/Dコンバータ30のLSBに対応す
るレベル)に達しているか否かを判定し、達していない
場合には、アドレスの更新を妨ぐため、ゼロクロス検出
位置のアドレス(これはサンプリング領域のスタートア
ドレスより2つ大きい値で、ゼロクロス発生チェックの
データ読込のためにCPU2がラッチ27にセットするアドレ
スに等しい)をスタートアドレスラッチ5を介してアド
レスカウンタ18にセットしてからオンフラグ15をオンに
戻す。この一連の動作はCPU2がゼロクロスの発生を検出
するまで続けられる。ゼロクロスの発生を検出した場合
はそれ以降のCPU2へのデータ取り込みは行なわず、アド
レスカウンタ18は(スタートアドレス+2)のアドレス
よりインクリメントを続ける。これにより、マイク34、
アンプ35を介して入力される実際のサンプル音が、A/D
コンバータ30によりサンプリング周期ごとにA/D変換さ
れ、RAM11へ順次書き込まれていく。そしてサンプリン
グ領域の最後まで書き込むと一致回路19=1となり、次
のサンプリングタイム(A1出力=1)ではA5出力=1と
なってA/Dフラグ21はリセットされサンプリングを終了
する。
ループ設定動作 次に、この発明と直接関係するループ設定動作につい
て説明する。前述のサンプリング動作を終えた後、使用
者がキー操作部1のループキーを押すと、CPU2はループ
設定処理を実行するため第8図に示すフローに入る。ま
ずステップS1でCPU2は先のサンプリング動作中に検出し
た有効のデータの開始時点のアドレス、すなわち最初の
ゼロクロスのアドレス(ループスタートアドレスにある
データを読み込む(上記CPUデータ読込動作参照)。こ
のループスタートアドレスは、本実施例では、サンプリ
ングスタートアドレスより2つ大きい値を有する(上記
のサンプリング動作参照)。続くステップS2で読み込ん
だデータが正か負かをチェックする。このデータは有効
データの開始のデータである。いいかえればこのデータ
より前のデータは無音レベル(代表的には第4図のBに
おける中央値10000000)である。したがってこのデータ
が正ということはこのデータの変化の相が「増大」であ
ることを意味し、このデータが負ということはこのデー
タの変化の相が「減少」であることを意味する。そこ
で、正の場合には、増/減フラグFを増(“1")にセッ
トし(ステップS3)、負の場合には同フラグFを減
(“0")にセットする(ステップS3′)。
続くステップS4では読出アドレスとして、サンプリン
グ時のエンドアドレスを選び、そのアドレスにあるデー
タを読み込む。続くステップS5でCPUは読み込んだデー
タが無音レベルかどうか、わかりやすくいえばデータ有
りか無かを判定し、データ無しであれば、読出アドレス
を−1してひとつ若いアドレスにあるデータを読込み
(ステップS6)、再度ステップS5へ戻る。したがって、
第6図に示すように、サンプリング領域のエンドアドレ
ス側に無音部分がある場合には、その間、ステップS5で
データ無しと判断され続ける。読出アドレスのデータ有
りと判断された場合はステップS7へ進み、読出アドレス
を−1し、ステップS8でそのデータがゼロクロスか否か
をチェックし、ゼロクロスが見つかるまでステップS7と
S8のループをくり返す。ゼロクロスが見つかったらステ
ップS9へ進みそのゼロクロスポイントのデータの位相が
ループスタートアドレス(第1ゼロクロスポイント)に
あるデータの位相と同相であるか否かを判定する。詳し
く述べると、両データが同相となるのは、第1ゼロクロ
スポイントの増/減フラグFが“1"、すなわち第1ゼロ
クロスポイントのデータの相が増大であり(正確にいえ
ばアドレスを増加させるにつれ増大するデータであ
り)、かつ、第2ゼロクロスポイントのデータの相が増
大である場合(正確にいえばアドレスを減少させるにつ
れ負方向へ変化するデータの場合)、あるいは第1ゼロ
クロスポイントのデータの相が減少であり、第2ゼロク
ロスポイントのデータの相が減少する場合である。同相
でない場合はステップS7からの動作をくり返す。
この同相チェックのルーチンがないと、第7図のAに
示すように、ループ読出しでの放音の場合、ループのつ
なぎ目(ループ接続位置)のところで位相が反転してし
まい、いわゆるクリック音を発生させてしまう。同相で
あれば、第7図のBに例示するようになめらかにつなが
る。
ステップS9で同相を検出したら、ステップS10で第2
のゼロクロスポイントのアドレス値をループエンドアド
レスとして設定し、ステップS10でループ時のスタート
アドレス(第1のゼロクロスポイント)と同じ値をルー
プリターンアドレスとして設定する。
以上の処理の結果、第2図のスタートアドレスラッチ
5にはループ時のスタートアドレスの値が、またリター
ンアドレスラッチ7にはこれと同じ値が、クロック発生
回路9にはループリターンアドレスの値がセットされ
る。
[変形例] なお、上記第8図のフローでは、ステップS5とS6のル
ーチンにより、有効データの始まり(エンドアドレスか
ら見て)を検索しているが、なくてもよい(この場合、
ステップS4の処理の後、直接ステップS8へ行く)。また
ゼロクロスの検出は、最も単純な方式では、隣接する2
つのアドレスにあるデータの符号の反転の有無を調べる
ことで行なえる。また、ゼロクロスデータの位相は、最
も単純な方式では2つの隣接するアドレスのデータの符
号の反転の方向(正から負か、負から正)によって決め
ることができるが、3つ以上の連続するアドレスのデー
タ列を分析するようなもっと正確な方式を採用してもよ
い。
さらに、実施例においては、位相は2種類(一方が増
大で、他方が減少)、しかないが、さらに細かく位相を
分けてもよい。例えば増大率や減少率がある範囲内(例
えば角度でいって30°以内)で一致する場合を同相の条
件としてもよい。さらにいえば、ゼロクロス近くの一連
のデータの増/減の変化のパターンがある範囲内で一致
する場合を同相の条件とすることも可能である。同相の
条件を厳しくすれば、クリック音の発生がなくなるだけ
でなくループのつながりのところで聴覚的に感じる音色
の不自然さ、不連続感をなくすことができる。
また、上記実施例では、サンプリング中に、実際のサ
ンプル音の開始であるゼロクロスの検出を、アドレスを
固定した状態で行っている。この方式は、結果として、
サンプリング領域の長さ(メモリ容量)を最小化する。
もっとも、この方式には限定されず、サンプリング終
了後のループ設定処理中に、ループリターンアドレスと
なるゼロクロスポイントとその位相を判別するようにし
てもよい。
また、上記実施例ではループキーをループ設定処理を
指定するキーとして使用したが、これは、必須の要素で
はない。すなわちサンプリングの終了後、完全に自動的
に第8図に例示するようなループ処理を行うようにする
ことができる。この場合、サンプリングの終了がループ
処理の開始条件となる。このサンプリングの終了は、CP
U2内のソフトウェアタイマーにより検出することができ
る。あるいは、音源回路側よより、CPU2へサンプリング
の終了を知らせるようにしてもよい(例えば、サンプリ
ング終了に伴いリセットされるA/Dフラグ21の状態を知
らせることにより、あるいはCPU2側でその状態をチェッ
クすることにより)。この場合、所望ならばループ機能
を禁止するキーをキー操作部1内に設けてもよい(その
キーのオンで、リターンアドレスラッチ7にエンドアド
レスラッチ6にセットするのと同じ値をセットすること
によりくり返しの読出しが禁止できる)。
また、上記実施例のループ処理では、ループ時のスタ
ートアドレスとリターンアドレスを同じにしている。こ
れは、外部音(サンプル音)として自然音や話し言葉な
どの肉声を使用する場合に特に適している。
しかしながら、これには限らず、第5図に例示するよ
うに異なるポイントを夫々スタートアドレス、リターン
アドレスとしてループ再生を行なってもよい。
[発明の効果] 以上詳述したように、この発明によれば、複数のアド
レスにわたってメモリに記憶されている波形のうち1つ
のゼロクロスポイントに対応するアドレスを第1のアド
レスとして記憶するとともに、この第1のアドレスにお
ける波形データの変化方向と波形データの変化方向が同
じで、かつ上記第1のアドレスとは異なるアドレスでの
ゼロクロスポイントを検出し、この検出されたゼロクロ
スポイントに対応するアドレスを第2のアドレスとして
記憶するようにして、さらに、上記記憶された第1のア
ドレスおよび第2のアドレスの間のアドレスを循環させ
て、上記メモリ内の波形データの少なくとも一部を繰り
返し読み出すようにしたので、特別に訓練された聴覚能
力やディスプレイ等による使用者の波形データ分析能力
を必要とすることなく、無音状態やクリック音が実質上
発生しない最適なループ領域を自動的に決定することが
できる。
【図面の簡単な説明】
第1図はこの発明の概念図、第2図はこの発明の一実施
例を示す構成図、第3図、第4図、第5図は第1図に示
す音源回路の説明に用いた図、第6図は実施例における
サンプリング領域をループ領域との関係をサンプル音の
アナログ波形とともに示す図、第7図はループ再生時の
アドレス波形例を示す図でありAは位相のループ接続
を、Bはこの実施例による同相のループ接続を示し、第
8図はこの実施例によるループ処理のフローチャートで
ある。 1……キー操作部、2……CPU、5……スタートアドレ
スラッチ、6……エンドアドレスラッチ、7……リター
ンアドレスラッチ、11……RAM。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】複数のアドレスにわたって波形データを記
    憶する波形記憶手段と、 この波形記憶手段に記憶されている波形データのうち、
    1つのゼロクロスポイントに対応するアドレスを第1の
    アドレスとして記憶する第1アドレス記憶手段と、 この第1アドレス記憶手段に記憶された第1のアドレス
    における波形データの変化方向を検出する第1の検出手
    段と、 上記波形記憶手段に記憶されている波形データのうち、
    この第1の検出手段により検出された波形データの変化
    方向と波形データの変化方向が一致し、かつ上記第1ア
    ドレス記憶手段に記憶されている第1のアドレスとは異
    なるアドレスでのゼロクロスポイントを検出する第2の
    検出手段と、 この第2の検出手段により検出されたゼロクロスポイン
    トに対応するアドレスを第2のアドレスとして記憶する
    第2アドレス記憶手段と、 上記第1アドレス記憶手段に記憶された第1のアドレス
    および上記第2アドレス記憶手段に記憶された第2のア
    ドレスの間のアドレスを循環させて、上記波形記憶手段
    に記憶されている上記波形データの少なくとも一部を繰
    り返し読み出す読出手段と、 を有することを特徴とするループ領域自動決定装置。
JP60280689A 1985-12-13 1985-12-13 ループ領域自動決定装置 Expired - Lifetime JP2599363B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60280689A JP2599363B2 (ja) 1985-12-13 1985-12-13 ループ領域自動決定装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60280689A JP2599363B2 (ja) 1985-12-13 1985-12-13 ループ領域自動決定装置

Publications (2)

Publication Number Publication Date
JPS62139588A JPS62139588A (ja) 1987-06-23
JP2599363B2 true JP2599363B2 (ja) 1997-04-09

Family

ID=17628567

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60280689A Expired - Lifetime JP2599363B2 (ja) 1985-12-13 1985-12-13 ループ領域自動決定装置

Country Status (1)

Country Link
JP (1) JP2599363B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0190093U (ja) * 1987-12-09 1989-06-14
JP2663509B2 (ja) * 1988-05-17 1997-10-15 株式会社リコー 音源装置
JP2730104B2 (ja) * 1988-11-19 1998-03-25 ソニー株式会社 ディジタル信号の生成方法
JPH02300797A (ja) * 1989-05-15 1990-12-12 Casio Comput Co Ltd 楽音生成装置
JP2605887B2 (ja) * 1989-10-04 1997-04-30 ヤマハ株式会社 音源波形の収録再生方法
JPH0458323U (ja) * 1990-09-27 1992-05-19
RU2502119C1 (ru) 2011-04-06 2013-12-20 Касио Компьютер Ко., Лтд. Музыкальный звукогенерирующий инструмент и машиночитаемый носитель
JP5751421B2 (ja) * 2011-08-31 2015-07-22 株式会社Jvcケンウッド 音声再生装置、音声再生方法、プログラム
JP6402878B2 (ja) * 2013-03-14 2018-10-10 カシオ計算機株式会社 演奏装置、演奏方法およびプログラム
JP6149890B2 (ja) * 2015-04-10 2017-06-21 カシオ計算機株式会社 楽音生成装置および楽音生成プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57172511A (en) * 1981-04-17 1982-10-23 Sanyo Electric Co Ltd Time-axis compressing and expanding circuit
JPS58178395A (ja) * 1982-04-13 1983-10-19 ロ−ランド株式会社 音声信号の時間軸伸長方法
JPS60102693A (ja) * 1983-11-10 1985-06-06 日本ビクター株式会社 打楽器音信号の発生装置

Also Published As

Publication number Publication date
JPS62139588A (ja) 1987-06-23

Similar Documents

Publication Publication Date Title
JP2599363B2 (ja) ループ領域自動決定装置
US4240318A (en) Portamento and glide tone generator having multimode clock circuit
JPH079589B2 (ja) 電子楽器
JPH0428319B2 (ja)
JPS6048760B2 (ja) 電子楽器におけるノ−トクロック発生装置
JPH0799478B2 (ja) 電子楽器
JP2599361B2 (ja) 波形読出装置
JPH0468635B2 (ja)
JPS6113239B2 (ja)
JP2586442B2 (ja) 楽音周波数制御回路
JP2586446B2 (ja) 楽音発生装置
JPH0468638B2 (ja)
JP2530926Y2 (ja) 電子楽器の自動演奏装置
JP2893698B2 (ja) 楽音信号発生装置
JP2819548B2 (ja) 電子楽器の制御情報送出装置
KR830000426B1 (ko) 전자악기의 화음 재생장치
JPS62139589A (ja) サンプリング電子楽器
JPS6153696A (ja) 電子楽器
JPS62139586A (ja) サンプリング楽器におけるポルタメント発生装置
JPH0451838B2 (ja)
JPH063440Y2 (ja) 残響効果装置
JPS6236233B2 (ja)
JPS62139593A (ja) 効果音発生装置
JPH0740193B2 (ja) 楽音発生装置
JP3337450B2 (ja) 電子楽器

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term