AcourateConvolver

uli.brueggemann
Aktiver Hersteller
Beiträge: 4658
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

AcourateConvolver

Beitrag von uli.brueggemann »

Hallo zusammen,

ich habe nunmehr den schon länger angekündigten AcourateConvolver online gestellt. Er kann also auf der AudioVero-Webseite gefunden werden.

Wozu und wofür AcourateConvolver?
Das Programm ist ein Faltungsprogramm für Windows-PCs. Es werden Korrekturfilter von Acourate verarbeitet. Ziel ist es hierbei, externe Musiksignale zu verarbeiten, also z.B. CD Spieler, Plattenspieler, Receiver, Streaming Client. Und auch, Möglichkeiten zum Bau aktiver Mehrwegesysteme zu bieten.
Es geht also von extern in die Soundkarte rein, es wird gefiltert und dann geht es entsprechend wieder über die Soundkarte raus.

Im Programm sind neben dem Falten mit FIR-Filtern weitere Features implementiert:
- Umschaltung zwischen drei Filterbänken
- AcourateFLOW, hierbei können dann zwei Eingangskanäle für die Berechnung gewählt werden
- ISO226 Lautstärkeeinstellung, also Volumenregler inkl. gehörrichtige Bewertung gem. ISO226
- Polaritätsumkehr insgesamt über alles, zusätzlich je Ausgangskanal vorwählbar
- Vorgabe von Verzögerungen je Ausgangskanal
- per Autorun-Kommando lässt isch uch ein Blackbox-Convolver realisieren

Bei RME-Soundkarten mit Totalmix lassen sich auch Ausgangskanäle auf Eingänge zurückrouten. Dies ermöglicht z.B. die Ausgabe per Foobar (oder einem anderen Player) mit anschliessendem Falten mit dem AcourateConvolver.

Grüsse
Uli

PS: mein herzlicher Dank gilt Simon, der in den letzten Wochen als Betatester penibelst nach Fehlern gesucht hat (und tatsächlich auch fand :mrgreen: ) und viele Anregungen zur benutzerfreundlichen Realisierung gegeben hat.
Bild
Thias
Aktiver Hörer
Beiträge: 233
Registriert: 25.12.2011, 08:53
Kontaktdaten:

Beitrag von Thias »

Hallo,

ich habe den AcourateConvolver jetzt auch schon 14 Tage im Einsatz und bin sehr zufrieden damit.
Glückwunsch, eine sehr gute Hilfe, die ungeahnte Möglichkeiten eröffnet...

In meinem recht komplexen RME FF-Routing kann ich ihn gut gebrauchen. Vorher hatte ich noch den VSTHost im Einsatz, der ist aber nun ersetzt.
Für Filter und Falten also bestens geeignet.

Weil es auf der Homepage oder Hilfe nicht so ersichtlich ist:
Wenn man nur AcourateFlow verwenden möchte, dann ist der AcourateConvolver auch geeignet. Auf Online-Flow haben ja schon viele gewartet. Dabei muss man aber beachten, dass Flow immer in Reihe vor einem Filter liegt. In dem Flow Fenster wählt man die Kanäle aus. Es funktioniert aber nur, wenn wenn danach in diesen Kanälen auch ein Filter geroutet ist. Im AudioVero-Beispiel unten SPDIF L/R. Deshalb braucht man dort einen Filter, also die Raumkorrektur oder (wenn man das nicht möchte) wenigstens einen "linearen Filter", ein Stück Draht. Den kann man sich in Acourate basteln. Das habe ich auch zu Routingzwecken in mehreren Kanälen praktiziert.

Durch das Setzen des Hakens kann man sehr schön "geflowt und ungeflowt" vergleichen. Leider muss der Convolver dazu erst aus/eingeschaltet werden.

Bild
Bild
markuspac
Aktiver Hörer
Beiträge: 10
Registriert: 06.08.2011, 10:32
Wohnort: Düsseldorf (406xx)

Beitrag von markuspac »

Hallo Uli,

danke, ein prima Tool. Ich habe auf die Schnelle ein wenig mit der Testversion von AcourateConvolver herumgespielt. Was mir direkt auffiel, ist die relativ hohe CPU-Auslastung im Vergleich zu ConvolverVST: Bei 176.4 kHz Samplingrate liegt der Echtzeitindex mit einer i3-2100 CPU und lediglich einem Convolution-Kanal (Testversion) bereits bei 17%, so dass ich davon ausgehe, dass eine 8- oder 10-Kanal Convolution auf diesem Rechner nicht möglich sein wird (mit ConvolverVST war das kein Problem). Was ich sonst noch bemerkt habe, ist dass sich der "Balance-Regler" nicht auf Null zurückstellen lässt (springt zw. -0.1 und +0.1).

mfg
Markus
Bild
uli.brueggemann
Aktiver Hersteller
Beiträge: 4658
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

markuspac hat geschrieben:Ich habe auf die Schnelle ein wenig mit der Testversion von AcourateConvolver herumgespielt. Was mir direkt auffiel, ist die relativ hohe CPU-Auslastung im Vergleich zu ConvolverVST: Bei 176.4 kHz Samplingrate liegt der Echtzeitindex mit einer i3-2100 CPU und lediglich einem Convolution-Kanal (Testversion) bereits bei 17%, so dass ich davon ausgehe, dass eine 8- oder 10-Kanal Convolution auf diesem Rechner nicht möglich sein wird (mit ConvolverVST war das kein Problem). Was ich sonst noch bemerkt habe, ist dass sich der "Balance-Regler" nicht auf Null zurückstellen lässt (springt zw. -0.1 und +0.1).
Markus,

1. welche FFT Partition hast Du eingestellt? Bitte da mal mit spielen, es wird vermutlich ein Optimum geben.
2. es ist kein Balance-Regler, sondern ein Preset für die ISO226-Einstellung. Mit der Maus drübergehen und mit dem Scrollrad die Feineinstellung machen, steht auch so im Manual.

Grüsse
Uli
Bild
markuspac
Aktiver Hörer
Beiträge: 10
Registriert: 06.08.2011, 10:32
Wohnort: Düsseldorf (406xx)

Beitrag von markuspac »

Hallo Uli,
markuspac hat geschrieben: ... so dass ich davon ausgehe, dass eine 8- oder 10-Kanal Convolution auf diesem Rechner nicht möglich sein wird ...
ich hab's nun mit der Vollversion nochmals probiert. Der Echtzeitindex liegt bei 176.4 kHz Samplingrate, 10-Kanal Convolution und einer FFT Partitionsgröße von 131k bei 30%, das ist unkritisch. Etwas CPU-Optimierung am Convolution-Algorithmus wär natürlich dennoch schön. :)
markuspac hat geschrieben: ... dass sich der "Balance-Regler" nicht auf Null zurückstellen lässt (springt zw. -0.1 und +0.1).
Mit Hilfe des Mausrads, wenn sich der Mauszeiger über dem betr. Bedienelement befindet (siehe Hilfe), geht's.

mfg
Markus
Bild
uli.brueggemann
Aktiver Hersteller
Beiträge: 4658
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

markuspac hat geschrieben:ich hab's nun mit der Vollversion nochmals probiert. Der Echtzeitindex liegt bei 176.4 kHz Samplingrate, 10-Kanal Convolution und einer FFT Partitionsgröße von 131k bei 30%, das ist unkritisch. Etwas CPU-Optimierung am Convolution-Algorithmus wär natürlich dennoch schön. :)
Bei meinem Rechner (i7 4-Kern) beanspruchen 6 Kanäle bei Partition 32768 nur 1% CPU-Leistung
Ansonsten weiss ich auch nicht, wass da noch am Algorithmus zu optimieren wäre.
markuspac hat geschrieben:(siehe Hilfe), geht's.
:mrgreen: Handbuchleser :mrgreen:

Grüsse
Uli
Bild
KSTR
inaktiv
Beiträge: 1221
Registriert: 08.05.2008, 11:51

Beitrag von KSTR »

uli.brueggemann hat geschrieben:Ansonsten weiss ich auch nicht, wass da noch am Algorithmus zu optimieren wäre.
Hallo Uli,
An der Implementation könnte man im Prinzip schon beliebig weit feilen (unter exponetiellem Aufwand), so zB für jeden der gängigen modernen Prozessoren und Architekturen optimierte hardware-nahe C-Routinen für die Knochenarbeit einbinden, in's Delphi (*äfz, und überhaupt :roll: ). Ist klar dass das schlecht geht und es ist ja auch nicht notwendig wie es aussieht. :cheers:

Äh, kann der Convolver aussgangsseitig -- so wie der von Mr.Pavel -- mehrere Signalstöme aufsummieren und wäre damit auch Cross-Convolution-fähig? ZB für eine direkte Trinaural-Zweiweglösung, brute force in einem Rutsch (2 mal 1-zu-6 Kanäle, d.h. 12 tlw. redundante Kerne auf 6 Senken)?
Bild
Fujak
Moderator
Beiträge: 5752
Registriert: 05.05.2009, 21:00
Wohnort: Bayern
Kontaktdaten:

Beitrag von Fujak »

Hallo Uli,

Glückwunsch zum neuen Convolver.

Eine Frage habe ich dazu:
uli.brueggemann hat geschrieben:Bei RME-Soundkarten mit Totalmix lassen sich auch Ausgangskanäle auf Eingänge zurückrouten. Dies ermöglicht z.B. die Ausgabe per Foobar (oder einem anderen Player) mit anschliessendem Falten mit dem AcourateConvolver.
Verstehe ich diese Passage richtig, dass man ausschließlich mit Karten/Interfaces, die ein Rerouting von Ausgangs- auf Eingangskanäle zulassen (also RME-Produkte mit TotalMix-Funktion) einen der üblichen Software-Player (Foobar, JPlay, cMP², JRiver...)betreiben kann. Hintergrund meiner Frage: Ich betreibe zwar ein Fireface, nutze dies aber nicht über USB sondern wegen des Reclockings durch den Big Ben an seinem SPDIF-Eingang (via Hiface). Würde das also bedeuten, dass ich Deinen neuen Convolver nicht verwenden kann?

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

Beitrag von uli.brueggemann »

KSTR hat geschrieben:An der Implementation könnte man im Prinzip schon beliebig weit feilen (unter exponetiellem Aufwand), so zB für jeden der gängigen modernen Prozessoren und Architekturen optimierte hardware-nahe C-Routinen für die Knochenarbeit einbinden, in's Delphi (*äfz, und überhaupt :roll: ). Ist klar dass das schlecht geht und es ist ja auch nicht notwendig wie es aussieht. :cheers:

Äh, kann der Convolver aussgangsseitig -- so wie der von Mr.Pavel -- mehrere Signalstöme aufsummieren und wäre damit auch Cross-Convolution-fähig? ZB für eine direkte Trinaural-Zweiweglösung, brute force in einem Rutsch (2 mal 1-zu-6 Kanäle, d.h. 12 tlw. redundante Kerne auf 6 Senken)?
Klaus,

1. es gibt da ja so Spezialisten, die sich mit der Optimierung herumschlagen und das Ganze dann in Form von Libraries veröffentlichen. Bei FFT wäre dies z.B. FFTW3. Oder das LAPACK von Intel. Wobei letztere hier zum Einsatz kommt. Und ich geh mal davon aus, dass die auch die speziellen CPU-Befehle kennen und nutzen, an denen übliche Compiler vorbeigehen.

2. Aufsummieren von Kanälen. Hab ich drüber nachgedacht, aber zugunsten einer einfacheren Verwendung (Benutzeroberfläche) mich doch anders entschieden. Weil man bei geeigneter Soundkarte die Summe auch anders bilden kann, also z.B. durch Zusammenschalten von Kanälen im Totalmix bei RME (z.B. Thias macht das auch so bei seiner Trinaural-Lösung, glaub ich)

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

Beitrag von uli.brueggemann »

Fujak hat geschrieben:Verstehe ich diese Passage richtig, dass man ausschließlich mit Karten/Interfaces, die ein Rerouting von Ausgangs- auf Eingangskanäle zulassen (also RME-Produkte mit TotalMix-Funktion) einen der üblichen Software-Player (Foobar, JPlay, cMP², JRiver...)betreiben kann. Hintergrund meiner Frage: Ich betreibe zwar ein Fireface, nutze dies aber nicht über USB sondern wegen des Reclockings durch den Big Ben an seinem SPDIF-Eingang (via Hiface). Würde das also bedeuten, dass ich Deinen neuen Convolver nicht verwenden kann?
Fujak,

das interne Routing ist eigentlich nur eine bequeme (und definitiv fehlerfreie) Möglichkeit. Man kann ja auch theoretisch einen Ausgang per Kabel zu einem Eingang routen. Also wäre vielleicht auch spdif out über BigBen zu spdif in denkbar. Ob es Sinn macht, ist zu testen. Dann würde das Fireface parallel zum HiFace laufen.

Um einen Convolver zwischen Player und HiFace zu hängen braucht es eine zusätzliche virtuelle Soundkarte (oder direkte Convolver-Plugins in den Playern). Ich bin da mit Virtual Audio Streaming in der Diskussion. Das Thema ist nicht ohne, speziell hinsichtlich Bittransparenz. Weil über die "einfache" MS-API die virtuelle Soundkarte wieder über den Kernel läuft. Es wird noch etwas dauern bis ich den Convolver mit virtueller Soundkarte fertig habe.

Grüsse
Uli
Bild
markuspac
Aktiver Hörer
Beiträge: 10
Registriert: 06.08.2011, 10:32
Wohnort: Düsseldorf (406xx)

Beitrag von markuspac »

Hallo Uli,

nochmal zum Thema Rechenperformance: Interessanterweise fällt der Realtime-Index bei mir besser aus, wenn ich den AcourateConvolver nur auf einem Kern laufen lasse. Bei mir 85% vs. 45% (bei auf 1.6 GHz begrenztem CPU-Takt, 10-Kanal Convolution, 176kHz Samplingrate, 131k Partition- und Filterlänge), was auch bzgl. CPU-Last im Taskmanager verifizierbar ist. Wenn die Rechenleistung knapp wird, ist das u.U. auch für andere einen Versuch wert.

Noch einen kurzen "Bugreport": Bei mir ist der Start-Knopf zunächst ausgegraut, erst wenn ich vorher in eines der Filter-Felder geklickt (und das Filterauswahl-Fenster wieder geschlossen) habe, kann ich Start anwählen.

mfg
Markus
Bild
nightingale
Aktiver Hörer
Beiträge: 156
Registriert: 10.01.2012, 14:30
Wohnort: Wien

Beitrag von nightingale »

Hi Uli,

ich habe 2 Fragen an dich:

1) ist die Anzahl der möglichen Kanäle durch deine SW limitiert? Ich überlege ein Setup für das ich 12 Kanäle benötige.

2) Ist es möglich mehr als 1 Soundkarte verwalten?

Danke
Peter
Bild
markuspac
Aktiver Hörer
Beiträge: 10
Registriert: 06.08.2011, 10:32
Wohnort: Düsseldorf (406xx)

Beitrag von markuspac »

Hallo Fujak,
uli.brueggemann hat geschrieben: ... braucht es eine zusätzliche virtuelle Soundkarte ... das Thema ist nicht ohne, speziell hinsichtlich Bittransparenz ...
ich hatte bei mir (bevor ich Loopback via RME-Feature verwendet habe) eine zeitlang Jackaudio (jackaudio.org) im Einsatz. Das war zwar etwas fummelig, hat aber im Grundsatz durchaus funktioniert. Ob das klanglich das Optimum ist, sei mal dahingestellt.

mfg
Markus
Bild
KSTR
inaktiv
Beiträge: 1221
Registriert: 08.05.2008, 11:51

Beitrag von KSTR »

uli.brueggemann hat geschrieben:2. Aufsummieren von Kanälen. Hab ich drüber nachgedacht, aber zugunsten einer einfacheren Verwendung (Benutzeroberfläche) mich doch anders entschieden. Weil man bei geeigneter Soundkarte die Summe auch anders bilden kann, also z.B. durch Zusammenschalten von Kanälen im Totalmix bei RME (z.B. Thias macht das auch so bei seiner Trinaural-Lösung, glaub ich)
Hallo Uli,

OK. Ich mache was sehr ähnliches mit meinem Motu, was auch Loopback von Submixen kann. Ich wollte den zusätzlichen 24-Bit-Weg hin und zurück, das doppelte Convolving+Dithering und das insgesamt unnötige Datenaufkommen aber vermeiden und habe jetzt ein VST-Host Setup (als Host wie als Slave) für die "alles-am-Stück-Lösung", wenn die Parameter sich als gut erwiesen haben und ich damit alles in einen Satz Kernel pressen kann, vorher ist die modulare Lösung natürlich praktischer. Leider ist VST-Host mit Pavels Convolver nicht immer stabil bei mir und möchte öfter mal nachparametriert werden... daher bin ich (leicht) auf der Suche nach Alternativen, es besteht aber kein akuter Handlungsbedarf.
Bild
uli.brueggemann
Aktiver Hersteller
Beiträge: 4658
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

nightingale hat geschrieben: 1) ist die Anzahl der möglichen Kanäle durch deine SW limitiert? Ich überlege ein Setup für das ich 12 Kanäle benötige.
2) Ist es möglich mehr als 1 Soundkarte verwalten?
zu 2) sofern die Soundkarten synchronisiert/gestackt sind und sich über einen ASIO-Treiber ansprechen lassen, sollte es möglich sein

zu 1) Limitierung durch Soundkarte/n und Rechnerleistung. Das Programm stellt alle gefundenen I/Os zur Verfügung

Grüsse
Uli
Bild
Antworten