0

カーソルの位置を取得して音声信号を出力するコードを書いています。しかし、ここに落とし穴があります: バックグラウンドで既に sin 関数が再生されており、マウス クリックはこのサウンドの x 値と y 値を変更するだけです。これが私がこれまでに思いついたものです:

clear all
clc
k = 1:1200;
 k = k/5000;

 x=1;
 y=1;

while i<10;
    [x,y]=ginput(1)

 vib= 0.5*sin(2*pi*y*k);
 note=sin(pi*x*k*440);
 ses = note+vib;
 sound (ses);
 end

ご覧のとおり、私のコードは sin 関数を実行するだけですが、離散的です。誰か助けてくれませんか?ハンドルとコールバックを調べましたが、頭に浮かびません。ネットで見つけた説明は複雑すぎて理解できません。

4

1 に答える 1

1

サウンド (ses); 変数「ses」を取り、再生するだけです。再生中は、思うようにデータに干渉することはできません。次の sound() 関数呼び出しで変化を確認できます。波形を連続的に再生したい場合は、次を参照してください。

Matlab:コールバックを使用してクリック時に現在のマウス位置を取得する方法

于 2013-03-28T06:16:41.360 に答える