ConvoFS (Convolving File System)

h0e
Administrator
Beiträge: 3863
Registriert: 11.11.2013, 09:40
Wohnort: München

Beitrag von h0e »

Hallo Gert,

derzeit ist gerade Testphase für Version 3.
Da gibt es neue Features wie Mehrkanalkonvolving, Up- und Downsampling etc.
Außerdem gibt es wohl Probleme mit neuen Synologys, dort ist die Firmware irgendwie anders,
somit muss Michael etwas weiter ausholen.
Außerdem ist es natürlich schon so, dass mittlerweile viele (unserer) Features in die Software eingeflossen sind. Daher besteht m.E.n. kein echter Entwicklungsdruck.

Grüsse Jürgen
Bild
Fortepianus
Aktiver Hersteller
Beiträge: 3667
Registriert: 17.12.2008, 12:41
Wohnort: Stuttgart

Beitrag von Fortepianus »

Hallo Jürgen,
h0e hat geschrieben:derzeit ist gerade Testphase für Version 3. ...Außerdem ist es natürlich schon so, dass mittlerweile viele (unserer) Features in die Software eingeflossen sind. Daher besteht m.E.n. kein echter Entwicklungsdruck.
einen weiteren Wunsch hatte ich bereits bei Michael geäußert, nämlich Dithering bei allen Rechenschritten. So habe ich festgestellt, dass offline convolving mit foobar besser klingt als online mit convoFS, auch wenn ich nur die MS-Funktion verwende. Ich habe dann rausgefunden, dass foobar und convoFS dann ganz ähnliche klangliche Ergebnisse liefern, wenn ich das Dithering in foobar abschalte. Daraufhin fragte ich Michael, ob denn Dithering erfolgt nach der MS-Rechnung bei ConvoFS, was er verneinte. Ich bin aber nicht sicher, ob er das inzwischen wieder vergessen hat, das war direkt nach dem Forumstreffen und ist schon ein Weilchen her. Falls Du daran auch Interesse hättest, wäre es sicher hilfreich, wenn Du ihn auch mit diesem Wunsch antriggerst.

Viele Grüße
der andere Gert mit t
Bild
h0e
Administrator
Beiträge: 3863
Registriert: 11.11.2013, 09:40
Wohnort: München

Beitrag von h0e »

Hallo Gert,

derzeit ist Michael zwar mit Zeit gesegnet, hat sich aber die Hand gebrochen und da programmiert es sich schlecht.

Grüsse Jürgen
Bild
Fortepianus
Aktiver Hersteller
Beiträge: 3667
Registriert: 17.12.2008, 12:41
Wohnort: Stuttgart

Beitrag von Fortepianus »

Hallo Jürgen,
h0e hat geschrieben:derzeit ist Michael zwar mit Zeit gesegnet, hat sich aber die Hand gebrochen und da programmiert es sich schlecht.
oh je der Arme, ich schreib' ihm gleich mal mein Bedauern über sein Malheur.

Viele Grüße
Gert
Bild
Fujak
Moderator
Beiträge: 5752
Registriert: 05.05.2009, 21:00
Wohnort: Bayern
Kontaktdaten:

Beitrag von Fujak »

Hallo zusammen,

beiden Wünschen von Gert schließe ich mich an:

1. Gute Besserung für Michael :cheers:

2. Dithering von ConvoFS als jeweils nachgeschalteter Schritt bei allen Prozessen.
Seit dem ich meine Neumänner betreibe, ist für mich der Unterschied zwischen ConvoFS und Offline-Convolving mittels Foobar (mit Dithering) so deutlich, dass ich zur Zeit auf den Einsatz von ConvoFS komplett verzichte (und alle FG-Korrekturen mittels Ortsfiltern vornehme). Das fände ich auf Dauer schade, und hoffe daher auf Abhilfe. Der Unterschied mit/ohne Dithering ist m.E. nicht marginal sondern wesentlich größer als all die anderen Optionen wie WAV-Transcoding, Upsampling etc.

Grüße
Fujak
Bild
uli.brueggemann
Aktiver Hersteller
Beiträge: 4658
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

Fujak hat geschrieben:. Das fände ich auf Dauer schade, und hoffe daher auf Abhilfe. Der Unterschied mit/ohne Dithering ist m.E. nicht marginal sondern wesentlich größer als all die anderen Optionen wie WAV-Transcoding, Upsampling etc.
Leute,

heute läuft eine online-Convolution ja üblicherweise mit einer 24bit-Ausgabe, schlichtweg weil die Soundkarten bzw. DACs es können. Wenn ConvoFS einen 16bit-Track faltet und dann aber mit 16bit weiterreicht, dann wird das Potential nicht genutzt. Dann ist auch klar Dithering nötig und es ist auch (für mich) hörbar. Wohingegen bei 24bit es m.E. für die meisten Präzisionsohren egal ist, ob man dithert oder nicht. Man macht es eigentlich deswegen, weil man es kann :wink:

Grüsse
Uli

PS: auch bei offline-Faltung mit AcourateNAS rechne ich dann immer lieber 24bit als Ergebnis.
Bild
h0e
Administrator
Beiträge: 3863
Registriert: 11.11.2013, 09:40
Wohnort: München

Beitrag von h0e »

Hallo,

ConvoFS gibt standardmäßig mit 24Bit aus, 16 Bitausgabe kann man wählen, wenn man das z.B. für Sonos benötigt.
Ich habe Offline und Online schon lange nicht mehr verglichen.
Ich falte gar nicht mehr!

Grüsse Jürgen
Bild
Daihedz
Aktiver Hörer
Beiträge: 793
Registriert: 25.06.2010, 15:09

Beitrag von Daihedz »

Bei dieser Gelegenheit nochmals eine Warnung vor dem Dithering mit/bei Brutefir aus dem Jahr 2014 in die Runde:
daihedz hat geschrieben: Ich erlaube mir zwei Bemerkungen zu Deiner Brutefir Config. [safety_limit] ist ein neuer Parameter seit der Version 1.0m und würgt Brutefir sofort ab, sobald der Pegel am Ausgang den eingestellten Wert überschreitet. Ein Wert von 20 macht keinen Sinn, da damit grosszügig eine digitale Übersteuerung um 20dB zugelassen würde. Entweder kann dieser Parameter auskommentiert werden, oder aber man kann dessen Wert auf z.B. -0.01 einstellen, damit man sicher ist, dass der DAC nie übersteuert wird.
...
Ich empfehle beim aktuellen Stand des Codes, das Dithering (Im Modul [Output] ) !!! AUSZUSCHALTEN!!! Grund: Brutefir startet manchmal und gut reproduzierbar, aber völlig zufällig mit einem grauenvollen Kreischen auf, dies bei Angabe eines Ausganspegels von +80dB ... +1000dB. Das hat mich schon einen Hochtöner gekostet, welcher innerhalb von ca. 1 Sekunde abgeraucht ist. Zum Glück blieben wenigstens meine Ohren unbeschadet. Ich habe dies A.Torger gemeldet, was der Grund war, dass er zunächst einmal den oben abgehandelten Parameter [safety_limit] implementiert hat. Der fängt diesen Ausnahmezustand jedoch leider nicht ab, sondern funktioniert ausschliesslich beim regulärem Betrieb: D.h. auch bei [safety_limit = - 3dB] kann es munter kreischen, und dies darüber hinaus auch bei einem völlig zurückgestellten Eingangs- oder Ausgangspegel. Da hilft nichts, ausser das Dithering auszuschalten: Wenn [dither: false;] eingestellt ist, ist dieses Berserker-Verhalten nicht reproduzierbar. Ich vermute einen Fehler im entsprechenden Algorithmus für das Dithering, und A.Torger weiss von meiner Vermutung. Ich warte auf 1.0n ...
Deshalb läuft Brutefir bei mir seither ausschliesslich ohne Dithering, mit/bei 32Bit, resp. 64Bit . Die Bittiefe hinauf-, resp. heruntergerechnet wird mittels Sox.

Tweeterbesorgte Grüsse
Simon
Bild
Fujak
Moderator
Beiträge: 5752
Registriert: 05.05.2009, 21:00
Wohnort: Bayern
Kontaktdaten:

Beitrag von Fujak »

Hallo zusammen,

um beim Topic zu bleiben: es geht hier ausschließlich um den klanglichen Unterschied mit und ohne Dithering beim Convolving (bzw. weiterer implementierter Prozesse mittels ConvoFS - also nicht nicht um klangliche Eigenschaften bei einer (unzweckmäßigen) Reduktion auf 16bit beim Convolving (Uli) oder Dithering aufgrund eines Programmierfehlers in einem völlig anderen Programm abzuschalten (Simon).

Welchen Unterschied das ausmacht, kann jeder anhand eines Teststückes feststellen, das man offline über Foobar (mit dem PlugIn foo_convolve.dll) einmal mit und einmal ohne nachgeschaltetem Dithering faltet - die Option wird im "Converter Setup" unter "Output format" eingestellt. Ohne Dithering klingt das Stück ähnlich wie mit ConvoFS aktuell, mit Dithering hingegen wesentlich detaillierter, räumlicher und weniger "digital".

Grüße
Fujak
Bild
Daihedz
Aktiver Hörer
Beiträge: 793
Registriert: 25.06.2010, 15:09

Beitrag von Daihedz »

Hallo Fujak
Fujak hat geschrieben: ... es geht hier ... nicht nicht um ... Dithering aufgrund eines Programmierfehlers in einem völlig anderen Programm abzuschalten (Simon). ...
Völlig anderes Programm??? ConvoFS setzt auf Sox und Brutefir, aktuell in der Version 1.0o auf. Das ist aus den Sources ersichtlich. Somit gehe ich davon aus, dass ConvoFS unter unglücklichen Umständen das Dither-Quietschen von Brutefir durchreichen könnte. Zumal nach meinem Wissen A.Torger seit der Version 1.0m den beschriebenen Quietschbug nicht bereinigt hat.

Nachhakend-aufklärende Grüsse
Simon
Bild
frankl
Aktiver Hörer
Beiträge: 485
Registriert: 20.01.2013, 01:43
Wohnort: Aachen

Beitrag von frankl »

Hallo ConvoFS-Freunde,

ich denke auch, dass Simons Beitrag hier on-topic war.

Verstehe ich richtig, dass Dithering hier überhaupt ein Thema ist, weil ConvoFS Flac-Dateien im gleichen Format ausgibt, wie die eingelesenen Dateien? (Und damit also meist/häufig 44.1/16?) In diesem Fall denke ich auch, dass Dithering bei hochwertigem Wiedergabeequipment sehr wichtig ist. Das würde ich dann aber nicht mit der einfachen 'dither' Option in brutefir realisieren (von der Simon aus anderen Gründen abrät), sondern mit 'sox' zusammen mit Noise-Shaping. (Die Suche nach "high-shibata" im Forum liefert Beispiele dazu.)

Bei Ausgabe von 24 Bit oder 32 Bit Daten konnte ich bei ausführlichen Versuchen absolut keinen Unterschied zwischen mit und ohne Dithering heraushören.

Das Dithering sollte übrigens nicht in allen Convolving-Schritten angewandt werden, sondern nur einmal ganz am Schluss vor der Ausgabe.

Für die Wunschliste für ConvoFS wäre es für die meisten vermutlich interessanter, die Daten mit höherer Bittiefe ausgegeben zu bekommen als in 16 Bit mit Dither.

Viele Grüße,
Frank
Bild
h0e
Administrator
Beiträge: 3863
Registriert: 11.11.2013, 09:40
Wohnort: München

Beitrag von h0e »

Hallo Frank,

nein ConvoFS gibt die Daeien standardmäßig in 24 Bit aus.
Ein Ausgabe in 16 Bit kann gewählt werden, Fujak nutzt das aber sicher nicht.

Grüsse Jürgen
Bild
Daihedz
Aktiver Hörer
Beiträge: 793
Registriert: 25.06.2010, 15:09

Beitrag von Daihedz »

Freunde des gepflegten Ditherns

Entwarnung!

Ich habe im Quellcode gestöbert und kann folgendes festhalten: Das Dithern erfolgt mittels sox, und nicht mittels brutefir.

Code: Alles auswählen

## OUTPUT DEFAULTS ##

output "l_out","r_out" {
	device: "file" {path: "/dev/stdout";append: true;}; # module and parameters to put audio
		sample: "@SAMPLE_FORMAT@";
	channels: 2/0,1; # number of open channels / which to use
	delay: 0,0; # delay in samples for each channel
	maxdelay: -1; # max delay for variable delays
	mute: false,false; # mute active on startup for each channel
	dither: false; # apply dither enable w/care
	#merge: false;
};
In der Brutefir config wird sogar davor gewarnt. Stattdessen wird das Dithern oder eben nicht sox mittels einer Variablen $dither mitgegeben:

Code: Alles auswählen

	sys("sox -V1 --ignore-length -q -D -t flac $file -t raw -c $chans -b 24 -e signed-integer - trim =${leftprecut}s  =${rightprecut}s $pad $dither remix @remix_str | $lock /bin/sh -c \"$fir\" | sox --ignore-length -q -D -t raw -c $chans -b 24 -e signed-integer -r $rate - -b $postbits -t wav $flif trim =${leftpostcut}s =${rightpostcut}s rate -v $postrate");
Und das Dithern mittels sox erfolgt, wie von Frank befürwortet, sinnvollerweise allenfalls und bloss genau ein Mal auf dem langen Weg der Bearbeitung.

Daswarsgrüsse
Simon
Bild
Fujak
Moderator
Beiträge: 5752
Registriert: 05.05.2009, 21:00
Wohnort: Bayern
Kontaktdaten:

Beitrag von Fujak »

Hallo Frank,
frankl hat geschrieben:Das Dithering sollte übrigens nicht in allen Convolving-Schritten angewandt werden, sondern nur einmal ganz am Schluss vor der Ausgabe.
Entspricht das Deinen Erfahrungen oder ist die Überlegung theoretischer Natur? Nach meinem (theoretischen) Verständnis würde es einen positiven Unterschied bedeuten, jeden Prozess mit Dithering abzuschließen und nicht erst am Ende der Summe aller Prozesse. Aber vielleicht mache ich mal dazu ein paar praktische Tests.

Grüße
Fujak
Bild
uli.brueggemann
Aktiver Hersteller
Beiträge: 4658
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

Dithering ist exakt dann notwendig oder sinnvoll, wenn man interne Berechnungen in Gleitkomma durchführt und das Ergebnis dann als Festkommagröße (Integer, PCM) ausgibt. Dann werden hinten Bits abgeschnitten und das erzeugt Störungen. Das Dithering überlagert die Störungen mit einem Rauschsignal, welches idealerweise zusammen mit den abgeschnittenen Werten passend gerundet wird.

Insofern macht es keinen Sinn, zwischendurch wiederum zu dithern und somit ein weiteres Rauschen hinzuzufügen.

Grüsse
Uli
Bild
Antworten