2016-05-02 11 views
0

Ich bin neu in Matlab. Ich möchte einen Sinus über die Soundfunktion spielen. Jetzt möchte ich den Ton durch Drücken einer Taste auf der Tastatur stoppen. Ist es möglich? Ich habe darüber nachgedacht, "clear playsnd" zu verwenden. Aber ich bin mir nicht sicher.Wie man einen Ton mit einer Taste stoppt?

fs=44100; %Sample Frequency 
samples=1/fs; 
d=10;  %Duration 
t=0:samples:(d-samples); % time 
amp=linspace(0.0001,2,441000); %Increasing the amplitude 

input('Please press enter ') 
%Definition der Variable "Weiterlaufen" als true für die while schleife 
a = true; 
while a 

disp(' ') 

    switch input('Chose 1 and press enter to play sound: '); 
     case 1 %Generating sound with a frequency of 125 Hz   
      f = 125; 
      s1 = sin(2*pi*f*t); 
      y= amp.*s1; 
      sound(y,fs); 

    end  
end 
+0

'ctrl + c' würde den Ton stoppen. Abgesehen davon glaube ich nicht, dass es einen Weg gibt, da die Dauer des Klangs von der Größe des Signals abhängt, das du ihm gibst. – Suever

+0

@Suever Ist es möglich, dass das Problem innerhalb der 'while true' Schleife liegt? Ich kann keinen Weg sehen, wie 'a'' falsch' sein kann. – Crowley

+0

@Crowley Ja, das ist ein Teil des Problems. Die Frage ist ziemlich unklar. – Suever

Antwort

0

Dies kann zu spät sein; aber clear sound ist eine Lösung dafür.