Ergebnis 1 bis 9 von 9
Like Tree1Likes
  • 1 Post By xorg1990

Thema: Seit Firefox 50 hackt audio

  1. #1
    Avatar von xorg1990
    xorg1990 ist offline Haudegen
    registriert
    20-12-2013
    Beiträge
    665

    Seit Firefox 50 hackt audio

    Hi, ich wollte zu beginn des neu Jahres meine QRSSB Software veröffentlichen. Wir sind schon gut seit 3 Monaten am Testen und in Chrome und Edge funktioniert soweit alles. Nur FF spinnt.

    Erst habe ich gedacht es liegt an meinem Code aber dem ist nicht so, alle Seiten die was mit Audio Capture zu tun haben, haben dasselbe Problem.

    Am besten lässt sich das Problem bei aerodynes auf der Seite nachvollziehen.
    Viewer

    Dazu muss man den Line-In mit dem Line-Out verbinden mit einem Klinke-Klinke Kabel oder nimmt einen 2ten Rechner. Oder man hat einen Pegeltongenerator rumstehen oder ähnliches.

    Dann brauch man noch einen Träger, am allereinfachsten geht der online Tone Generator:
    Online Tone Generator - Free, Simple and Easy to Use.

    Wenn man jetzt bei aerodynes auf der Seite oben links auf Start klickt erscheint ein Träger im Spektrum

    Soweit alles ok.
    Verbindet man nun aber den Input mit dem output (oben auf Toggle audio monitor klicken). geht das gehacke los. Das Spektrum reißt auch ab.

    Der Quelltext ist hier zu finden:
    https://github.com/elafargue/html5/b...waterfall.html

    Wer jetzt denkt das ist ein bug von der Seite der kann ja mal die Audio-Input effects von Chris Wilson nehmen, da ist exakt das gleiche Problem.

    https://webaudiodemos.appspot.com/input/index.html

    Einfach alle Regler nach links schieben und den effect auf delay belassen.

    Ich habe das Problem sowohl unter FF Ubuntu als auch FF win7/10.

    Wenn jemand weiß woran das liegt fände ich klasse. Ansonnten bin ich gezwungen FF user zu bannen.
    Da es ja unter chrome und Eedge funktioniert.

  2. #2
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.268

    AW: Seit Firefox 50 hackt audio

    haken != hacken
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png
    Sorry wenn ich manchmal ohne Hallo und nur klein schreibe! Dann bin ich nicht unfreundlich sondern mit nervigem kleinem Touch Tablet zugange

  3. #3
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.215

    AW: Seit Firefox 50 hackt audio

    Zitat Zitat von xorg1990 Beitrag anzeigen
    Wer jetzt denkt das ist ein bug von der Seite der kann ja mal die Audio-Input effects von Chris Wilson nehmen, da ist exakt das gleiche Problem.
    Ich weiß jetzt nicht, was du meinst. Bei mir scheint die Seite zu funktionieren.

  4. #4
    Avatar von xorg1990
    xorg1990 ist offline Haudegen
    registriert
    20-12-2013
    Beiträge
    665

    AW: Seit Firefox 50 hackt audio

    Zitat Zitat von mikdoe
    haken != hacken
    Ähm


    Zitat Zitat von kkapsner
    Bei mir scheint die Seite zu funktionieren.
    Hast du auch die Seite von aerodynes probiert ? Das Forum hat "Viewer" als link daraus gemacht.
    Bei mir stürzt sowohl die Seite von Chris Wilson ab, als auch auch die von aerodynes.

    Du muss halt mal versuchen ein stabiles Signal in die Soundkarte rein schaffen. z.B 440Hz träger
    Musik ist dafür ungeeignet. Unter Windows ist eigentlich nach 10sec Schluss dann ist FF abgestürzt.

    Schau dir mal die CPU last von Firefox an 115%
    Bildschirmfoto vom 2016-12-27 17:04:36.png

    - - - Aktualisiert - - -

    FF aereodynes viewer:
    FF_aerodynes.png
    Keine Rückmeldung!!!!!

    FF audio input von cWilso:
    FF_cwilso.png
    Es ist eindeutig zu sehen das der Ton immer aussetzt. Genau das selbe Problem habe ich in meinem QRSSB Projekt auch.
    Mal zum vergleich Chrome:
    FF_cwilso_chrome.png
    Habe mal ein WAV File aufgezeichnet mit https://higuma.github.io/wav-audio-encoder-js/
    Für meine Begriffe klingt das So als haben die den FIFO zerschossen.
    Angehängte Dateien Angehängte Dateien
    Geändert von xorg1990 (27-12-2016 um 20:00 Uhr)
    mikdoe likes this.

  5. #5
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.268

    AW: Seit Firefox 50 hackt audio

    cool dieses sound zeugs. dass das alles schon im browser geht.
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png
    Sorry wenn ich manchmal ohne Hallo und nur klein schreibe! Dann bin ich nicht unfreundlich sondern mit nervigem kleinem Touch Tablet zugange

  6. #6
    Avatar von xorg1990
    xorg1990 ist offline Haudegen
    registriert
    20-12-2013
    Beiträge
    665

    AW: Seit Firefox 50 hackt audio

    Zitat Zitat von mikdoe
    cool dieses sound zeugs. dass das alles schon im browser geht.
    Wenn es denn funktioniert, dann ist es auch cool.
    Aber in FF war die web audio api schon immer ein gräul.

    Ich finde auch den Weg die Entwickler mit der Web Audio api gehen schlecht.
    Mann bräuchte viel mehr DSP Knoten.

    Z.B ein FIR Filter, den man einfach die Koeffizienten mit gibt und fertig.

    Mann kann keine Fensterfunktion vor der FFT festlegen.

    Die Web audio FFT ist generell murks.
    FFT Output in Decibel brauch keiner. Real und Imaginär anteil sind das einzig vernünftige, daraus kann man sich alles andere berechen.
    Eine Inverse FFT wäre noch geil.
    Viel zu wenig FFT input size.

    Man kann keine Sample-rate festlegen.


    Ein AGC (auto Gain) knoten fehlt auch.
    Noise blacker knoten fehlt. Ohne noise blanker kann der BiquadFilter Algorithmus durcheinander(generell jeder IIR filter) kommen genau so wie die AGC durcheinander kommt.


    Was ist eingleich mit der Samplrate Abweichung zwischen input und output..Wie wird das gehandhabt?
    Steht nirgend wo geschrieben. Ein resampler Knoten wäre also noch von vorteil.
    Mann müsste festlegen können Samplerate input, samplerate output. Dazwischen kann man Resampler schalten.


    Wenn ich's jetzt auf die Spitze treiben würde bräuchte man noch,
    Denoiser,
    complexe FFT,
    Semplerate Calibrator,
    Hilbert Transformation (Phase sifter)
    Chrip Filter,
    Goertzel Filter,
    echo cancellation,
    SSB Generator(mischer wie auch immer).

    Praktisch eine DSP API.

    - - - Aktualisiert - - -

    Moin,
    Habe noch mal ein minimales code schnipsel gemacht selbst das funktioniert nicht auch wenn man die source gleich mit der destination verbindet ohne ein webAudio knoten !!!!!!!!!!!!!


    Code:
    <!DOCTYPE html>
    <html>
    <head>
    	<title></title>
    	<script>
    function run(){
    		navigator.getMedia = ( navigator.getUserMedia ||  navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia);
    		var audioCtx = new(window.AudioContext || window.webkitAudioContext || mozAudioContext || oAudioContext || msAudioContext)();
    		var processor = (audioCtx.createScriptProcessor || audioCtx.createJavaScriptNode).call(audioCtx, 8192, 1, 1);
    
    
    
    	function handleAudio(ev){
    		var inputLe = ev.inputBuffer.getChannelData(0);
    		var outputLe = ev.outputBuffer.getChannelData(0);
    		for(var i=0;i<inputLe.length;i++){
    			outputLe[i]=inputLe[i];
    		}
    	}
    
    processor.onaudioprocess = handleAudio;
    processor.connect(audioCtx.destination)
    
    function gotAudioStream(stream) {
        window.source = audioCtx.createMediaStreamSource(stream);
      	source.connect(processor);//bug https://bugzilla.mozilla.org/show_bug.cgi?id=934512
    }
    
    
    function gotError(err) {
          alert("An error occured! " + err);
    }
    
    navigator.getMedia(        {
                "audio": {
                    "mandatory": {
                        "googEchoCancellation": "false",
                        "googAutoGainControl": "false",
                        "googNoiseSuppression": "false",
                        "googHighpassFilter": "false"
                    },
                    "optional": []
                },
    			video: false},gotAudioStream,gotError);
    }
    	</script>
    </head>
    <body onload="run()">
    </body>
    </html>
    Man merkt das Problem aber erst wenn man tatsächlich irgend wie ein stabiles Signal in die Soundkarte rein manövriert. Mit einem mic und reden scheint alles ok.
    Man kann auch das video als Ton nehmen
    https://www.youtube.com/watch?v=dZ5G13MEMgc

    Am besten ist aber immer noch ein Funktionsgenerator/Pegelgenrator
    AE20125 10 MHz Wobbel-DDS-Funktionsgenerator Komplett-Bausatz mit Gehäuse/USB | eBay

  7. #7
    Avatar von xorg1990
    xorg1990 ist offline Haudegen
    registriert
    20-12-2013
    Beiträge
    665

    AW: Seit Firefox 50 hackt audio

    Das neue Jahr kann kommen, hab das Problem gefunden.
    Ich bin folgender maßen vorgegangen:
    Zu erst habe ich abgecheckt ab welcher FF Version getUserMedia und AudioContext.createMediaStreamSource() eingeführt wurde. Siehe Version 25.

    Installiert getestet, geht. Dann hab ich Version 30 installiert und promt hakt der Ton ab und das Spektrum in in den aerodynes viewer sieht auch komisch aus.
    Drauf hin hab ich mir in createMediaStreamSource() in der console ausgegeben und auch den stream von gUM(getUserMedia). Konnte nix westliches finden.

    Darauf hin habe ich google angeworfen und nach echoCancellation gesucht, weil Chrome das eingeführt hat, wird Mozilla da mitziehen wollen. Und siehe da bugzilla:

    Since we're moving our AEC from PeerConnection to gUM, people who wont like it on by default need a way to disable it.
    https://bugzilla.mozilla.org/show_bug.cgi?id=987186
    AEC steht für auto-echo-cancellation.
    In about:config gegangen, nach media.getusermedia.aec_enabled gesucht und abgeschalten den mist. Und oho, ein wunderbarer Sinus ertönt aus meinen Boxen.

    Geil.

    Und was sagt uns das? Das dieses postprocessing schrott ist!

    z.B das/die AGC, man kann es einschalten und ausschalten und einen Wert einstellen, aber was ist das für ein Wert? Threshold ? Decay ? Slope?


    Ich könnte mich noch weiter auskotzen aber ich lasse es.

  8. #8
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.215

    AW: Seit Firefox 50 hackt audio

    Gut, dass es jetzt bei dir funktioniert. Wahrscheinlich hat der Algorithmus gedacht, dass dein gleichförmiger Eingang ein Rückkopplungsschliefe ist.

  9. #9
    Avatar von xorg1990
    xorg1990 ist offline Haudegen
    registriert
    20-12-2013
    Beiträge
    665

    AW: Seit Firefox 50 hackt audio

    Zitat Zitat von kkapsner
    gleichförmiger Eingang ein Rückkopplungsschliefe ist.
    Denke auch. Weiß überhaupt nicht wie das funktioniert mit der echo Unterdrückung. Bei der Rauschunterdrückung kann ich mir eine "spectral Subtraktion" vorstellen.

    Habe übrigens mal ein bissel im Quellcode geschnüffelt, weil ich mal wissen möchte wie die das machen mit der sample rate zwischen Eingang und Ausgang. Ob ein Antialiasing filter dazweichen ist oder nicht usw.
    Konnte nix gescheites finden. Logisch bei 14.045.424 Zeilen code.
    https://www.openhub.net/p/firefox/an...guages_summary


    Der Analyser ist aber eine eigene geschriebene FFT. Kiss-FFT ist auch enthalten aber ich gehe davon aus das die das zum Mp3 und OGG encodieren nehmen. Im "neuen" MediaRecoder
    https://developer.mozilla.org/de/doc.../MediaRecorder

    Speex ist auch massiv vertreten wohl zum Steamen über WEBRTC.

    Wo die echo cancellation steckt habe ich auch nicht gefunden, kann auch sein das die die von speex nehmen und auch den resampler.

    Wer möchte kann ja selber mal in den Quellcode schauen.
    https://github.com/mozilla/gecko-dev...3a9f524c4b/dom

    about:memory kann man sich auch mal ansehen
    Geändert von xorg1990 (31-12-2016 um 01:51 Uhr)

Ähnliche Themen

  1. Seite hackt beim Laden bzw. umschalten
    Von th_wolfgang im Forum Allgemeines
    Antworten: 4
    Letzter Beitrag: 16-04-2015, 19:41
  2. Antworten: 4
    Letzter Beitrag: 07-03-2014, 03:29
  3. Antworten: 1
    Letzter Beitrag: 23-01-2014, 02:23
  4. Problem mit Web Audio API, Ton hackt und kratzt
    Von xorg1990 im Forum JavaScript
    Antworten: 22
    Letzter Beitrag: 23-01-2014, 02:19
  5. JS-Fehler seit FF3.5
    Von MastermindHWI im Forum JavaScript
    Antworten: 8
    Letzter Beitrag: 25-07-2009, 11:11

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •