hallo. dank eurer hilfe ( Lob und Anerkennung! :) ) habe es endlich geschaft einen (fast) equalizer in matlab zu realisieren (code sehe anhang. sektrum ist ein wenig häßlich, aber na ja). meine nächste frage(n). wie könnte man es jetzt so anstellen, daß EQ auch in echtzeit funktioniert? sprich, beim abspielen einer wav-datei(besser line-in der soundkarte) werden mit GUI die schieber/slides für jeweiliches band bewegt so daß man eine pegeländerung zu hören sein soll. ich dachte mir eine bestimmte anzahl von abtastwerten zu nehmen die zu verarbeiten und abzuspielen. das ganze dann immer wieder. wie könnte das aussehen? gibt es vielleicht andere möglichkeiten?
hallo. so jetzt hat mein EQ auch ein passendes GUI (sehe anhang. na ja sind nur 2 bänder aber zum experimentiren reicht es erst mal). habe jedoch folgendes problem: wie in meinem ersten beitrag schon erwähnt, will ich den EQ bischen echtzeitfähig machen. d.h., wenn man auf "Push Button" drückt erklingt eine melodie(das funktioniert). dabei möchte ich, daß während des abspielens beim bewegen der slider die veränderungen wahrgenommen werden können. dies habe ich mit der doppelten for-schleife erzwecken wollen(mit einfachen gings auch nicht,also jeweils immer mit einem abtastwert). leider bekomme ich eine fehlermeldung "auf das audio device konnte nicht geschrieben werden" oder so ähnlich. wo liegt der fehler? geht es denn überhaupt, daß 2 callbacks(pushbutton und sliderx) gleichzeitig aktiv sind? also wenn man ohne for-schleife "push button" drückt und dann einen slider bewegt sieht man spektrumveränderung während die melodie erklingt. aber in diesem fall wird das veränderte spekrum bei der faltung und "fftfilt" nicht berücksichtigt.
sorry, die schleife sollte so aussehen: for i=0:(length(x)/5-1); for k=1:5; buffer(k)=x(i*5+k); end hges=conv(h,h2); y=fftfilt(hges,buffer); sound(y,22000); end oder so for i=1:length(x); hges=conv(h,h2); y=fftfilt(hges,x(i)); sound(y,22000); end ist eigentlich egal.
Hallo Anabolik, dein eq find ich klasse! hab mir das gleiche vorgenommen für die semsterferien. Hab jetzt aber mal ne Frage zu der Funktion der Koeffizeinten Berechnung. Ich hab nun schon ein paar Stunden verbracht und versteh einfach nicht was dort passiert..... Ein großes Fragezeichen für mich ist das beta. Was ist das? Es wär super genial wenn du vielleicht die Funktion noch mal auskommentiern würdest. viele Grüße Ralf
hallo ralf, beta ist die auf f_sample/2 normierte frequenz! ... man kann laut nyquist/shannon signale nur bis maximal f_sample/2 (ohne alias) darstellen, was heißt das spektrum wird an n*f_sample/2 gespiegelt wiederholt, daher normiert man beim entwurf eines IIR- oder FIR- filters die frequenzachse auf f/(f_sample/2). viele grüße Ralf wrote: > Hallo Anabolik, > dein eq find ich klasse! hab mir das gleiche vorgenommen für die > semsterferien. > Hab jetzt aber mal ne Frage zu der Funktion der Koeffizeinten > Berechnung. > Ich hab nun schon ein paar Stunden verbracht und versteh einfach nicht > was dort passiert..... Ein großes Fragezeichen für mich ist das beta. > Was ist das? > Es wär super genial wenn du vielleicht die Funktion noch mal > auskommentiern würdest. > viele Grüße Ralf
Echtzeitfähig wird so ein Ding mit einer blockweisen Verarbeitung, d.h. eine Ausgabemöglichkeit (die Matlab leider standardmäßig nicht hat). msound kann so was.
halloooo .... hast du es nun geschafft mit der echtzeitverarbeitung???
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.