Kanalzuordnung und Delays in den Multiway XOs

Mister Cool
Aktiver Hörer
Beiträge: 1297
Registriert: 22.11.2017, 23:21

Kanalzuordnung und Delays in den Multiway XOs

Beitrag von Mister Cool »

Hallo,

ich bin gerade dabei ein 3-Wege Multiway XO zu erstellen und den dazugehörigen Config-File für den JRiver Convolver anzupassen. Dabei habe ich mich an einem Beispiel von Mitch Barnett orientiert.

Dazu habe ich folgende Fragen (siehe auch das beigefügte Bild)

1. In dem Acourate Crossover Generator kann ich die Delays für die einzelnen Kanäle definieren (per +/-Taps). Ich nehme an, die Delays werden gleich für das jeweilige Kanal-Paar (L/R) gesetzt. Aber wenn ich mir den Config-File anschaue, dann sehe ich dort ebenfalls eine Möglichkeit, die Delays individuel pro Kanal, also nicht paarweise (in Milisekunden) anzugeben. Wären diese Angaben von der Auswirkung/Funktion/Qualität äquivalent?
Es ist mir klar, dass ich auch mittels Acourate individuelle Delays eingeben könnte, wenn ich die Filter zwei mal mit unterschiedlichen Delay-Werten für L und R erstelle.
Mein Hintergedanke -> in der Testphase wäre es für mich einfacher jeweils nur den betroffenen Wert in der Config-Datei zu verändern, anstatt jedes mal die Filter neu generieren zu müssen. Wenn ich die richtigen Delay-Werte gefunden habe, würde ich sie in die finale Filter übernehmen und die im Config-File wieder auf 0 zurücksetzen.

2. und 3. Mitch hat in der ersten Zeile 6 Eingangskanäle angegeben, aber spätter sich nur auf 2 bezogen, immer paarweise auf (0) und (1). Warum? Ich hätte gedacht, dass das Eingangsignal Stereo ist, also 2-Kanalig ist. Dementsprechend würde die erste Zeile wie folgt aussehen: 44100 2 6 0

Wo ist mein Gedankenfehler im Verstehen von <number of input channel> und <filter channel> (from IR file)

Bild

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

Beitrag von uli.brueggemann »

Alwin,

die JRiver config basiert im Prinzip auf der config-Definition des VST Convolvers (dann aber wiederum mit nicht wirklich gut dokumentierten Abwandlungen), siehe also zuerst einmal http://convolver.sourceforge.net/config.html
Das Beispiel von Mitch ist demzufolge fehlerhaft. Wenn er denn da die 3_Cube_multiway_XO verwendet, so wäre das ja eine wav-Datei mit 6 Kanälen. Demzufolge müsste er für die Ausgänge auch die zugehörigen XOs zuordnen, er verwendet aber nur XO0 und XO1.
Dass er am Anfang 6 Eingangskanäle benennt, dafür aber nur zwei verwendet, ist da eher untergeordnet.

Ich habe im übrigen die Erfahrung gemacht, dass JRiver sich da nicht wirklich Mühe gegeben hat. Oft wird trotz einer güötigen config Not Valid angezeigt. Die Wahrscheinlichkeit, dass eine config mit mono-wavs eher läuft als mit einer Mehrkanal-wav, ist definitiv höher.

Im übrigen frage ich mich, was man denn im JRiver mit einer multiway_XO erzielen will. Die braucht man ja eher fürs Messen, dazu würde ich aber nicht JRiver verwenden. Und bei Mehrwege-Korrekturfiltern sind dann ja schon die Delays mit drin, insofern braucht es keine für die JRiver config. Es ist im Gegenteil kontraproduktiv. Wenn man das Delay verändert, dann müsste man auch die Korrektur anpassen.

Unabhängig dazu noch eine Antwort zu 1: die Delays sind nicht identisch, in Acourate sind es Samples, in JRiver Millisekunden. Ob das in JRiver klappt habe ich noch nie getestet.

Grüsse
Uli
Bild
Mister Cool
Aktiver Hörer
Beiträge: 1297
Registriert: 22.11.2017, 23:21

Beitrag von Mister Cool »

Uli,

danke! Das kam schneller als ich erhofft habe :-)

Ich habe mich an der verlinkten Sourceforge Beschreibung orientiert, deshalb bin ich auf diese Ungereimheiten aufmerksam geworden
Wenn er denn da die 3_Cube_multiway_XO verwendet, so wäre das ja eine wav-Datei mit 6 Kanälen. Demzufolge müsste er für die Ausgänge auch die zugehörigen XOs zuordnen, er verwendet aber nur XO0 und XO1
Genau das ist mein Punkt.

Aber angenommen, es ist tatsächlich ein 6-Kanal Multiway IR-Filter, und JRiver versteht es auch richtig, dann müste ich die Eingangskanäle und die XO0-XO5 in dem Config File durch Kanal-Nr (0)-(5) ansprechen müssen


44100 6 6 0
0 0 0 0 0 0
0 0 0 0 0 0
C:\Projekte\3Cube\3Cube_multiway_XO.wav
0
0.0
0.0
C:\Projekte\3Cube\3Cube_multiway_XO.wav
1
1.0
1.0
C:\Projekte\3Cube\3Cube_multiway_XO.wav
2
2.0
2.0
C:\Projekte\3Cube\3Cube_multiway_XO.wav
3
3.0
3.0
C:\Projekte\3Cube\3Cube_multiway_XO.wav
4
4.0
4.0
C:\Projekte\3Cube\3Cube_multiway_XO.wav
5
5.0
5.0

Im übrigen frage ich mich, was man denn im JRiver mit einer multiway_XO erzielen will. Die braucht man ja eher fürs Messen, dazu würde ich aber nicht JRiver verwenden. Und bei Mehrwege-Korrekturfiltern sind dann ja schon die Delays mit drin, insofern braucht es keine für die JRiver config. Es ist im Gegenteil kontraproduktiv. Wenn man das Delay verändert, dann müsste man auch die Korrektur anpassen.
Ich lese heraus, dass ich zum Abspielen per JRiver eine Multiway Filterdatei nicht brauche und ein Verweis auf die individuellen Mono-XO IR-Filter zuverlässiger funktioniert. Wäre dann das eine richtige Config-Datei? Alle IR-Dateien sind Mono also beinhalten nur ein Kanal -> der Input Channel ist immer (0), nur der Output Channel wird hochgezählt (0)-(5)


44100 6 6 0
0 0 0 0 0 0
0 0 0 0 0 0
C:\Projekte\3Cube\3Cube_XO0.wav
0
0.0
0.0
C:\Projekte\3Cube\3Cube_XO1.wav
0
0.0
1.0
C:\Projekte\3Cube\3Cube_XO2.wav
0
0.0
2.0
C:\Projekte\3Cube\3Cube_XO3.wav
0
0.0
3.0
C:\Projekte\3Cube\3Cube_XO4.wav
0
0.0
4.0
C:\Projekte\3Cube\3Cube_XO5.wav
0
0.0
5.0


Ist die Rote 6 oben richtig?

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

Beitrag von uli.brueggemann »

Mister Cool hat geschrieben: 44100 6 6 0
0 0 0 0 0 0
0 0 0 0 0 0
C:\Projekte\3Cube\3Cube_XO0.wav
0
0.0
0.0
C:\Projekte\3Cube\3Cube_XO1.wav
0
1.0
1.0
C:\Projekte\3Cube\3Cube_XO2.wav
0
0.0
2.0
C:\Projekte\3Cube\3Cube_XO3.wav
0
1.0
3.0
C:\Projekte\3Cube\3Cube_XO4.wav
0
0.0
4.0
C:\Projekte\3Cube\3Cube_XO5.wav
0
1.0
5.0
Die rote 6 ist m.E. nicht nötig, es kann auch 2 sein. Eben linker/rechter Eingangskanal.
Die anderen rot markierten Kanäle sind dann jeweils der rechte Eingangskanal.

Grüsse
Uli
Bild
Mister Cool
Aktiver Hörer
Beiträge: 1297
Registriert: 22.11.2017, 23:21

Beitrag von Mister Cool »

Super, danke, das werde ich ausprobieren.

Grüsse,
Alwin
Bild
Mister Cool
Aktiver Hörer
Beiträge: 1297
Registriert: 22.11.2017, 23:21

Beitrag von Mister Cool »

Hi,

ich habe es ausprobiert und "habe jetzt den dreh raus", sowohl für die Variante mit den dedizierten XO-Dateien, als auch mit der einzelnen Multiway-Datei. Es läuft unter Windows und unter MacOS

Hier die Variante mit den dedizierten XO-Dateien

44100 6 6 0
0 0 0 0 0 0
0 0 0 0 0 0
C:\JRiver\Filter\01\XO1L44.wav
0
0.0
0.0
C:\JRiver\Filter\01\XO1R44.wav
0
0.0
1.0
C:\JRiver\Filter\01\XO2L44.wav
0
0.0
2.0
C:\JRiver\Filter\01\XO2R44.wav
0
0.0
3.0
C:\JRiver\Filter\01\XO3L44.wav
0
0.0
4.0
C:\JRiver\Filter\01\XO3R44.wav
0
0.0
5.0


Hier die Multiway-Datei

44100 6 6 0
0 0 0 0 0 0
0 0 0 0 0 0
C:\JRiver\Filter\01\XOMultiway.wav
0
0.0
0.0
C:\JRiver\Filter\01\XOMultiway.wav
1
1.0
1.0
C:\JRiver\Filter\01\XOMultiway.wav
2
0.0
2.0
C:\JRiver\Filter\01\XOMultiway.wav
3
1.0
3.0
C:\JRiver\Filter\01\XOMultiway.wav
4
0.0
4.0
C:\JRiver\Filter\01\XOMultiway.wav
5
1.0
5.0


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

Beitrag von uli.brueggemann »

Alwin,

wieso verwendest Du bei der ersten Variante nur den linken bzw. ersten Eingangskanal?

Grüsse
Uli
Bild
Mister Cool
Aktiver Hörer
Beiträge: 1297
Registriert: 22.11.2017, 23:21

Beitrag von Mister Cool »

Hallo Uli,

sind die XO-Dateien nicht "kanalspezifisch" -> sprich enthalten nur ein Kanal (daher auch die getrennte Datei für L und R z.B. XOL44.dbl und XOR44.dbl). Das veranlasst mich den einzigen enthaltenen kanal durch die 0 anzusprechen.
Wären die XO-Dateien "zweikanalig", hätte ich nach Deiner Systematik eine "stereo" Datei mit dem Namen XOS44.dbl erwartet. Dann wäre es für mich logisch gewesen, explizit das passende L/R Kanal abwechselnd per 0/1 anzgeben.

BTW. Beide Angaben, sowohl 0 als auch 1, funktionieren (wie Du es früher mit rot markiert hast), aber ich habe noch nicht verstanden warum. Warum gebe ich des zweite Kanal in einer "einkanaligen" Datei an.

Aber vielleicht habe ich es nicht richtig verstanden, wofür diese Zeile ist - siehe beigefügte syntax-Beschreibung:

4-line filter path specifications each comprising the filter (impulse response) file, the channel to be used from that IR file, the input and output channels that the filter path uses, and how the inputs and outputs are to be scaled:

<filter filename>
<filter channel>
<input channel>0.<weight>0 ... <input channel>n.<weight>n
<output channel>0.<weight>0 ... <output channel>m.<weight>m

where

<filter filename>:a filter (impulse response) file. Convolver will read any format supported by libsndfile. However, you will probably want to stick to WAV files. Raw .PCM (or .pcm) files are assumed to be mono 32-bit float files. All the filters for in a filter path specification must be the same length.Impulse response filters for room correction can be generated by RecImp or by following the excellent Jones Rush User Guide.If you want to generate filters for other applications, you will need to look elsewhere. For example, you might want to generate digital cross-overs or cross-talk cancellation filters or DAFX - Digital Audio Effects.

<filter channel>:specifies the channel (staring at 0) from the filter file to be used for this filter path. There are many stereo impulse response files available on the internet. Since each filter path uses only a single channel, this feature allow you to use the left and right (0 and 1) channels from these impulse response files in two separate filter paths, for example.

<channel>:channel numbers start at 0. A filter path does not have to use all the source channels as input. Output channels that have no filter path associated with them will be fed with silence.

<scale>:scaling factors are applied to the samples from each input channel and, after processing, to the resulting samples for each specified output channel. A scaling factor of 0 implies no scaling (ie, a scaling factor of 1). Negative scaling factors are allowed (which will result in phase inversion). For straight inversion, don't use -0.0 for channel 0; use -0.99999 instead.



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

Beitrag von uli.brueggemann »

Alwin,

die config ist ja für JRiver gedacht. Nun kommt es darauf an, ob JRiver stereo ausgibt oder nicht.
Im Fall der von Dir geposteten ersten config wird nur der linke Kanal verwendet, mit den jeweiligen XOs gefaltet und dann an den Ausgangskanälen ausgegeben.
Bei der zweiten config werden der linke und rechte Kanal verwendet. Links dann mit den in der multiway verpackten XO1L, XO2L und XO3L. Rechts mit der XO1R, XO2R und XO3R.

Solange im Sollsignal links und rechts identisch sind spielt das also keine Rolle. Wenn aber links/rechts nicht identisch sind wird bei der ersten config eben nur der linke Kanal verwendet und nach Faltung mit den XOs sowohl links als auch rechts ausgegeben. Das rechte Stereosignal wird dabei nicht verwendet.

Grüsse
Uli
Bild
Mister Cool
Aktiver Hörer
Beiträge: 1297
Registriert: 22.11.2017, 23:21

Beitrag von Mister Cool »

Danke,

Verwirrend dabei ist, dass die Syntax von einem <input channel> spricht, aber wie Du schreibst, in JRiver ist damit eine stereo Ausgabe (also nach meiner Logik output) gemeint ist

Ich werde es korrigieren, wir wollen doch alles L/R spezifisch haben

PS.

langsam leuchtet es mir ein -> da wird von source channels gesprochen, also ob es bei einer Stereoquelle aus dem L oder R Kanal (Signal) kommt...

Jetzt wird ein Schuh daraus :-)

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

Beitrag von uli.brueggemann »

Alwin,

es macht Sinn, den Ursprung der config-Datei nachzuschauen. Woraus dann klar hervorgeht, siehe Abbildung, das es bei der Faltung eben Eingänge und Ausgänge gibt. Siehe also hier
Im Fall von JRiver gibt es also den internen Stereo-Ausgang in die Convolution Engine, die ihrerseits die Signale an den Eingängen übernimmt, faltet und an den Ausgängen ausgibt, worauf JRiver die gefalteten Signale letztendlich an den realen Ausgängen rausschiebt.

Grüsse
Uli
Bild
Mister Cool
Aktiver Hörer
Beiträge: 1297
Registriert: 22.11.2017, 23:21

Beitrag von Mister Cool »

Hi,

die Graphik rechts ist hilfreich.
Danke fü Deine Geduld.

Alwin
Bild
Lauscher
Aktiver Hörer
Beiträge: 557
Registriert: 30.09.2017, 07:54
Wohnort: Oldenburg

Beitrag von Lauscher »

na - da bin ich ja froh den Convolver von Uli zu verwenden :D
Das scheint mir ja doch etwas einfacher zu sein.


Viele Grüße
Jens
Bild
Mister Cool
Aktiver Hörer
Beiträge: 1297
Registriert: 22.11.2017, 23:21

Beitrag von Mister Cool »

Ja, ein Acourate Convolver wäre sicherlich einfacher (und der einprogrammierter Loudnes würde mir auch gefallen), aber es läuft nicht unter Mac.

Und ich sehe es entspannt. Ich betrachte sowas z.T. als Gehirn-Jogging. Man lernt immer was dazu, die kleinen Challenges sind immer eine wilkommene Triebfeder, weiter zu machen :-)

Grüsse,
Alwin
Bild
Lauscher
Aktiver Hörer
Beiträge: 557
Registriert: 30.09.2017, 07:54
Wohnort: Oldenburg

Beitrag von Lauscher »

Alvin - da hast Du natürlich Recht :D

Ich wünsche uns noch viele Herausforderungen
Jens
Bild
Antworten