lilak schrieb:
ja die logik würde mich auch mal interessieren. wie soll bei der übergabe von daten von einem programm zum nächsten latenzen im millisekundenbereich entstehen? erklärung bitte!
Das geht so aus der Grafik hervor ....
Aber bevor wir hier in einer Diskussion über ein Detail das eigentliche Problem aus dem Auge verlieren. Sorry jetzt kommt Informatik , betriebssystemkonzepte ....
Ich halte das Konzept einer integrierten daw für das immer noch erfolgversprechendste für digitale Studios.
Wie müsste es denn sein, was sind die Anforderungen ?
1.) systemweite (Betriebssystem-) Dienste
Eine daw greift über standardisierte systemschnittstellen (API s) auf die Hardware Treiber zu. Diese systemschnittstellen beinhalten ebenfalls den Übergang vom usermode in den kernelmode, bei dem auf die Hardware zugegriffen wird. Hier bieten die kernelmode Komponenten der systembibliotheken ebenfalls eine standardisierte API an, die von den hardwaretreibern bedient wird.
Für Daws haben diese APIs zwei ausprägungen, midi und Audio . Systemseitig stehen ebenfalls infrastrukturdienste wie Timer und Notifikationen sowie peripheriedienste wie USB oder firewireservices zur Verfügung.
Das war's, mehr braucht es nicht, was systemseitig zur Verfügung gestellt werden muss. Dafür würde ein alsa oder oss reichen.
(3:1 für Borussia !)
2.) applikationsnahe Dienste , die nur auf Anforderung zur Verfügung stehen
2.1)
Hier braucht es eine Plugin Schnittstelle , die bestimmte audio und midi Komponenten dynamisch laden kann und über die eine daw bestimmte teile der Audio oder midiverarbeitung delegieren kann. Diese Komponenten werden im applikationskontext der daw ausgeführt . Das ladspa system könnte dies analog der Vst oder Au Schnittstelle erledigen.
2.2)
Eine kommunikationsschnittstelle , in der unabhängige Applikationen untereinander audio und midi Daten hin und herstreamen können . Dabei bleibt allerdings eine Anwendung Master, die die systemzugriffe implementiert und darüber auch das latenzmanagement durchführt. Nach dem rückstandsfreien entsorgen von 80% des Codes kann jack den Rest übernehmen .
.......
Bei der bestehenden audioarchitektur sind etliche Basics aus der Informatik ignoriert worden, u.a. Kiss, pfeif nicht wenn du pisst , Separation of concerns und so weiter, dafür aber etliche antipatterns umgesetzt worden. Das meiste kann weg.
(4:1 ...)
Zurück zur eigentlichen frage. Es besteht keine Notwendigkeit, dass Programme Daten so massiv pipen. Und natürlich kostet jeder datentransfer zwischen Applikationen massiv zeit . Wir sind hier im Bereich interprozesskommunikation , und da ist jeder Aufruf teuer. Und wenn die datenweitergabe noch per Push erfolgt, also vom Sender aktiv initiiert wird, dann Rauschen die Millisekunden nur so durch die CPU.