xorg1990
New member
Hallöle,
Bei meiner Software/Anwendung läuft irgend was nicht ganz richtig und zwar ist es schlicht und einfach nicht empfindlich genug.
Es ist So: Eine Soundkarte hat von Haus aus schon in gewisses Rauschen, in SpektrumLab sieht man das auch. Nur in in meiner Javascript Anwendung ist nix zu sehn, auch das Verhältnis bei der Lautstärke stimm nicht.
Habe das mal visuell nieder gelegt:

Links ist SL, rechts bei mir ist nur ein Zipfelmütze zu sehn.
Damit man überhaupt was sieht habe ich bei 1500Hz ein Sinus losgelassen.
Ich poste noch mal die draw Method.
Die AudioLlib fft Reihe bringt mir Float64 bit zurück, das finde ich persönlich klasse aber für die Helligkeit un Kontrast Eigenstellung ist mir das zu spielig, Uint 8bit sind völlig ausreichend nur weiß ich in JS wider nicht wie ich 64bit nach uint8 Bit bringe
Ist das so richtig:
Das auskommentierte habe ich auch noch im Netz gefunden....bringt nix.
Die frage ist halt warum ist kein rauschen zu sehn?????
Liegt es an der der Web audio API -> Kann nicht sein da ich alles über den Scriptprocessor mache. Da ist nix mit Gain/Volume oder ähnlichen.
Vielleicht das Canvas zu träge.
Ich habe halt absolut kein Ansatz woran es liegen könnte, deshalb Poste ich bei allgemein.
Hab noch ein andren ähnlichen Analyser gefunden der mit direct Input arbeitet:
Viewer
Selbes Problem es gibt von haus aus kein gekrissel/rauschen nix.
Was macht C anders als JS... es passt nicht in mein Kopf.
Für alle Ratschläge wär isch sehr sehr dankbar
Ps: wenn ein Admin der Meinung ist das zu verschieben, kann er das gerne tun.
Bei meiner Software/Anwendung läuft irgend was nicht ganz richtig und zwar ist es schlicht und einfach nicht empfindlich genug.
Es ist So: Eine Soundkarte hat von Haus aus schon in gewisses Rauschen, in SpektrumLab sieht man das auch. Nur in in meiner Javascript Anwendung ist nix zu sehn, auch das Verhältnis bei der Lautstärke stimm nicht.
Habe das mal visuell nieder gelegt:

Links ist SL, rechts bei mir ist nur ein Zipfelmütze zu sehn.
Damit man überhaupt was sieht habe ich bei 1500Hz ein Sinus losgelassen.
Ich poste noch mal die draw Method.
Code:
Window.prototype.drawSpectrogram = function() {
var ctx = this.canvas_ctx;//this.canvas_ctx == the main canvas
//reset and redraw the db grid in every cycle
ctx.clearRect(this.beginGrid, 0, this.db_GridWidth, this.canvas_height);
ctx.drawImage(this.dbCanvas, this.beginGrid, 0);
ctx.beginPath();
var FFT_Data = this.Analyser1.spectrum;
this.tempCtx.drawImage(this.waterCanvas, 0, 0, this.waterCanvas.width, this.waterCanvas.height);
//this.waterCanvasCtx.clearRect(0, 0, this.waterCanvas.width, this.waterCanvas.height);
//Move the Path to the right position
ctx.moveTo(this.beginGrid, this.canvas.height + 10);
for (var i = 0; i < this.waterCanvas.height; i++) {
var pt = Math.floor(this.F_Start + this.fftArrayIdx / this.canvas.height * i);
//convert the float64 in to Unit8 bit
var value = Math.round(255 * (FFT_Data[pt])); //Math.round(128+127*(FFT_Data[pt]*100));//256+32*Math.log(FFT_Data[pt]/1*40);
// draw each pixel with the specific color
this.waterCanvasCtx.fillStyle = this.colors.getColor(value).hex();
//lineTo nur bei jedem 2ten i
if (!(i % 2)) {
if (this.beginGrid + 1.2 + value > this.beginGrid + 1) {
ctx.lineTo(this.beginGrid + value, this.canvas_height - i - 1);
}
}
this.waterCanvasCtx.fillRect(this.waterCanvas.width - 1, this.waterCanvas.height - i, 1, 1);
}
// set translate on the canvas
this.waterCanvasCtx.translate(-1, 0);
// draw the copied image
this.waterCanvasCtx.drawImage(this.tempCanvas, 0, 0, this.waterCanvas.width, this.waterCanvas.height, 0, 0, this.waterCanvas.width, this.waterCanvas.height);
// reset the transformation matrix
this.waterCanvasCtx.setTransform(1, 0, 0, 1, 0, 0);
//draw the water canvas on the main cnavas
ctx.stroke();
ctx.drawImage(this.waterCanvas, 0, 0, this.waterCanvas.width, this.waterCanvas.height, 0, 0, this.waterCanvas.width, this.waterCanvas.height);
};
Ist das so richtig:
var value = Math.round(255 * (FFT_Data[pt])); //Math.round(128+127*(FFT_Data[pt]*100));//256+32*Math.log(FFT_Data[pt]/1*40);
Das auskommentierte habe ich auch noch im Netz gefunden....bringt nix.
Die frage ist halt warum ist kein rauschen zu sehn?????
Liegt es an der der Web audio API -> Kann nicht sein da ich alles über den Scriptprocessor mache. Da ist nix mit Gain/Volume oder ähnlichen.
Vielleicht das Canvas zu träge.
Ich habe halt absolut kein Ansatz woran es liegen könnte, deshalb Poste ich bei allgemein.
Hab noch ein andren ähnlichen Analyser gefunden der mit direct Input arbeitet:
Viewer
Selbes Problem es gibt von haus aus kein gekrissel/rauschen nix.
Was macht C anders als JS... es passt nicht in mein Kopf.
Für alle Ratschläge wär isch sehr sehr dankbar

Ps: wenn ein Admin der Meinung ist das zu verschieben, kann er das gerne tun.