WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

wav datei randomisiert abspielen/mehrere eingaben speichern

 

manuchao
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 03.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.07.2010, 08:26     Titel: wav datei randomisiert abspielen/mehrere eingaben speichern
  Antworten mit Zitat      
Aloha zusammen,

bin leider nicht ganz fit in matlab und bräuchte euren rat.
ich habe folgende problemstellung: das programm soll randomisiert einen ton von 2,3 und 4 sekunden länge abspielen, dann 1 sekunde pause und dann folgt ein zweiter ton der kürzer bzw. länger ist als der erste. auch randomisiert.

nun soll ein fester bzw. eine eingabe möglichkeit geschaffen werden die es dem zuhörer erlaubt die töne zu bewerten nach dem die frage kommt: welcher ton war länger? ton 1 oder ton 2 ?

dies soll 20mal wiederholt werden und in einer excel datei dokumentierrt werden. also ton 1 ton 2 und dann die antwort des zuhörer.

kann die wav dateien zwar einlesen und abspielen aber dann setzt es schon aus!

könnte mir da jemand nützliche tipps geben, bzw. mit welchen befehlen man da am besten arbeitet?

vielen dank für euere hilfe.
Private Nachricht senden Benutzer-Profile anzeigen


manuchao
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 03.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.07.2010, 15:05     Titel: Re: wav datei randomisiert abspielen/mehrere eingaben speich
  Antworten mit Zitat      
habe das programm soweit hin bekommen das es ton 1 und ton 2 nacheinander abspielt.meine frage wäre jetzt: gibt es einen befehl mit dem ich ton 1 und ton 2 und die antwort (siehe unten) bei jedem durchgang in einer ecxel tabelle oder .mat datei speichern kann??

[code]%
function [] = wave
dataout=[];

x = length(20);
for x=1:2 % Anzahl der Durchläufe
%% Ton 1
%%
liste1=dir('1*wav'); %wave dateien von 2,3,4 sekunden länge

for k = 1:numel(liste1)
WAV{k}=wavread(liste1(k).name);
end

nmax = length(liste1);
n=randperm(nmax);

for k=1:1
str=sprintf('Now playing: %s',liste1(n(k)).name);
disp(str);
wavplay(WAV{k},44100)
end
%%
pause(1)
%%

liste2=dir('2ton*.wav'); % hier wird der 2te ton geladen!!!

for k = 1:numel(liste2)
WAV{k}=wavread(liste2(k).name);
end

nmax2 = length(liste2);
n=randperm(nmax2);

for k=1:1
str=sprintf('Now playing: %s',liste2(n(k)).name);
disp(str);
wavplay(WAV{k},44100)
end
%end
%if n == 1ton_3_sek.wav
%%

prompt = {'Eingabe 1 oder 2:'};
dlg_title = 'Welcher Ton war länger: Ton 1 oder Ton 2 ?';
num_lines = 1;
def = {''};
answer = inputdlg(prompt,dlg_title,num_lines,def);

pause(1)
%Daten = xlswrite('Daten1.xls',2)

end


wie schafft man es wenn der ton 1 von 2 sekunden abgespielt wurde das der zweite ton der dann auch 2 sek betragen soll +- 15%,25%,35% auch abgespilt wird. und nicht der ton 2 von 4 sekunden +- 15%,25%,35% länge.
und noch eine frage: wie kann man bei der zufalsswiedergabe die wiederholung vermeiden??

vielen dank für die hilfe.





manuchao hat Folgendes geschrieben:
Aloha zusammen,

bin leider nicht ganz fit in matlab und bräuchte euren rat.
ich habe folgende problemstellung: das programm soll randomisiert einen ton von 2,3 und 4 sekunden länge abspielen, dann 1 sekunde pause und dann folgt ein zweiter ton der kürzer bzw. länger ist als der erste. auch randomisiert.

nun soll ein fester bzw. eine eingabe möglichkeit geschaffen werden die es dem zuhörer erlaubt die töne zu bewerten nach dem die frage kommt: welcher ton war länger? ton 1 oder ton 2 ?

dies soll 20mal wiederholt werden und in einer excel datei dokumentierrt werden. also ton 1 ton 2 und dann die antwort des zuhörer.

kann die wav dateien zwar einlesen und abspielen aber dann setzt es schon aus!

könnte mir da jemand nützliche tipps geben, bzw. mit welchen befehlen man da am besten arbeitet?

vielen dank für euere hilfe.


[code][/code][code][/code]
Private Nachricht senden Benutzer-Profile anzeigen
 
manuchao
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 03.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.07.2010, 12:25     Titel: Re: wav datei randomisiert abspielen/mehrere eingaben speich
  Antworten mit Zitat      
Hallo zusammen.

versuche schon seit tagen das programm mit den zwei tönen zum laufen zu bringen. funktioniert soweit.
aber mein problem ist, dass ich die eingaben die gemacht werden, nicht speichern kann. die eingaben werden im vektor immer überschrieben und so sind nur die letzten durchgägnge dokumentiert. das programm sieht wie folgt aus:

function [] = wave2


x = length(20);

for x=1:2 % Anzahl der Durchläufe
%% Ton 1


liste1=dir('1*wav');

for k = 1:numel(liste1)
WAV{k}=wavread(liste1(k).name);
end

nmax = length(liste1);
n=randperm(nmax);

for k=1:1
%str1=sprintf('Now playing: %s',liste1(n(k)).name);
str1=sprintf(liste1(n(k)).name);
disp(str1);
wavplay(WAV{k},44100)
SoundData=[str1];
end
%%
pause(1)
%% Ton 2

if str1 == '1ton_2_sek.wav'

liste2=dir('2*.wav');

for k = 1:numel(liste2)
WAV{k}=wavread(liste2(k).name);
end

nmax2 = length(liste2);
n=randperm(nmax2);

for k=1:1
%str2=sprintf('Now playing: %s',liste2(n(k)).name);
str2 = sprintf(liste2(n(k)).name);
disp(str2)
wavplay(WAV{k},44100)
SoundData=[str2];
end

for k=1:1
prompt = {'Welcher ton war länger'};
dlg_title = 'Ton 1 oder Ton 2 ?';
num_lines = 1;
def ={'1 oder 2'};
answer =inputdlg(prompt,dlg_title,num_lines,def);
SoundDataanswer1=[answer];
end
end
%%

if str1 == '1ton_3_sek.wav'

liste3=dir('3ton*.wav');

for k = 1:numel(liste3)
WAV{k}=wavread(liste3(k).name);
end

nmax3 = length(liste3);
n=randperm(nmax3);

for k=1:1
%str2=sprintf('Now playing: %s',liste2(n(k)).name);
str3=sprintf(liste3(n(k)).name);
disp(str3)
wavplay(WAV{k},44100)
SoundData=[str3];
end


prompt = {'Welcher ton war länger'};
dlg_title = 'Ton 1 oder Ton 2 ?';
num_lines = 1;
def ={'1 oder 2'};
answer =inputdlg(prompt,dlg_title,num_lines,def);
SoundDataanswer2=[answer];

end
%%

if str1 == '1ton_4_sek.wav'

liste4=dir('4ton*.wav');

for k = 1:numel(liste4)
WAV{k}=wavread(liste4(k).name);
end

nmax4 = length(liste4);
n=randperm(nmax4);

for k=1:1
%str2=sprintf('Now playing: %s',liste2(n(k)).name);
str4=sprintf(liste4(n(k)).name);
disp(str4)
wavplay(WAV{k},44100)
SoundData=[str4];
end


for k=1:1
prompt = {'Welcher ton war länger'};
dlg_title = 'Ton 1 oder Ton 2 ?';
num_lines = 1;
def ={'1 oder 2'};
answer =inputdlg(prompt,dlg_title,num_lines,def);
SoundDataanswer3=[answer];
end
end
end

pause(2)

%%
%%cd ..\
%load SoundData

SoundData=[str1;str2;str3;str4;answer];

save SoundData SoundData

end[code]

ich würde gerne jeden ton der gespielt wurde und jede eingabe die gamacht wird in einem vekor oder ähnlichem speichern.
gibt es dafür eine elegante lösung??
bitte um eure Hilfe.
danke
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.