• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

child spawn Argumente richtig übergeben

xorg1990

New member
Ich habe mal wider ein Problem mit nodejs,
ich möchte sox als child process spawnen.

doch sox sagt mir immer das dass compand Argument flasch sei.
Code:
args = ["-V2", "-c1", "-t", "alsa", inputMic, "-t", "alsa", outputTRX, "compand", companderSetting];
		}
		
processes.SOX_Compander_inp = spawn("sox" , args);

Wobei companderSetting ein string ist let companderSetting = "0.0,0.01 0.25:-20,-20,0,-20 -0.1 -40 .0005";


Was mache ich falsch?

spawn ist so definiert const spawn = require("child_process").spawn; also nicht als exec

- - - Aktualisiert - - -

NB: der compand String ist richtig, daran liegt es nicht.
 
Was ist denn in inputMic und outputTRX drin?
Bzw. zeig' doch mal, was genau in args drin ist.

- - - Aktualisiert - - -

Ist der companderString nicht eigentlich 5 Parameter und nicht nur einer...?
 
kkapsner schrieb:
Was ist denn in inputMic und outputTRX drin?
Der alsa device string also "hw:0,1".

Es ist schon der compand Befehl der schief läuft, den sox gibt aus :
sox FAIL compand: usage:
attack1,decay1{,attack2,decay2}
[soft-knee-dB:]in-dB1[,out-dB1]{,in-dB2,out-dB2}
[gain [initial-volume-dB [delay]]]

kkapsner schrieb:
Ist der companderString nicht eigentlich 5 Parameter und nicht nur einer...?
Möglich, aber wie ist das dann zu trennen???


Bin ja schon in diesem Beitrag nicht mit dem Kompander klar gekommen: http://forum.jswelt.de/allgemeines/63883-sox-filter-chain.html#post406736
 
JA, jetzt wo du es sagst.

Jetzt hab ich nur ein Problem, ich habe ein input Feld in dem User ihre eignen Werte eintragen können, wie Kriege ich den String jetzt in eigne Parameter?

..... glaube mit split() und concat() sollte es gehen
 
Ja, damit sollte es gehen.

Ich hoffe, du hast eine strikte Validierung der Benutzereingaben. Sonst kannst du dir da sehr schnell Probleme einhandeln.
 
Inwiefern strikt??

Das einzige was ich mache ist den string Trimmen .trim().

Wenn man da quatsch eingibt, wirft sox eine Fehlermeldung. Diese wird via websocket an den Browser gesendet.
- Alles was "gespawnd" wird wird an den Browser gesendet.
Das Projekt ist nicht öffentlich am netzt, ich Programmiere nur eine GUI fürs Raspberry in Browser.



Sorry das ich nicht Ehrer geantwortet habe, hatte eine heftige Sommer Grippe.
 
Mit strikt meine ich, dass da wirklich nur erwartete Daten drin sind.

Du sollst an dem String auch nichts ändern, nur validieren, dass da niemand Blödsinn mit deinem Raspberry machen kann.

Wenn das nur privat für dich ist, musst du hald wirklich sichergehen, dass sonst niemand darauf zugreifen kann.
 
Zurück
Oben