C
changeling
Guest
khz schrieb:alsa-firmware ist in/bei jeder Distribution mit dabei.
Bei irgendeinem Ubuntu war es (oder alsa-firmware-loaders) aber mal nicht dabei und ich hatte dadurch ziemlichen Brass.
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: This feature may not be available in some browsers.
khz schrieb:alsa-firmware ist in/bei jeder Distribution mit dabei.
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!
in der folterkammer sitzt?khz schrieb:Das ist Ideal wenn man den Tag über
khz schrieb:
mink99 schrieb: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 ....
mink99 schrieb: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.
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 .
mink99 schrieb: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.
mink99 schrieb: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.
Welchen Vorteil soll es haben, wenn eine Anwendung einen Master bildet? Das behindert nur ein flexibeles Konzept. Man merkt wohl, das du bei IBM arbeitest...mink99 schrieb: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.
dbra schrieb:Noch eine kleine Ergänzung:
Welchen Vorteil soll es haben, wenn eine Anwendung einen Master bildet? Das behindert nur ein flexibeles Konzept. Man merkt wohl, das du bei IBM arbeitest...mink99 schrieb: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.
mink99 schrieb:Zur Grafik
Ich sehe in der Grafik eine Zahl in rot, 2,6 Millisekunden genau unter einem mit jack bezeichneten Kästchen ...
mink99 schrieb:Jack ist die personifizierte Verletzung des Kiss Prinzips .
Wofür ist jack denn da ? Ist es jetzt die systemschnittstelle zur Hardware , ein Interapplikations Audio und midi Streaming system, ist es der zentrale audio midi Hub als Master oder was ? Bereits das Konzept eines systemweiten audioservers ist notleidend. Die daw ist sinnvollerweise Master und muss es sogar sein. Deshalb ist die direkte Kommunikation daw <> alsa der bessere weg.
Nope. Oben erklärt...mink99 schrieb:Gerade die unklaren Verantwortlichkeiten zwischen alsa und jack verletzen das Separation of concerns Prinzip.
mink99 schrieb:Wenn jack sich ausschliesslich um die Interapplikations kommunikation kümmern würde, wären 80 % obsolet.
Die freie verschaltbarkeit setzt natürlich einen zentralen audio/midiserver voraus. Ob das jetzt nur deshalb so gemacht wurde, und die Applikationen deshalb nur teilfunktionalitäten implementieren, oder ob der Server implementiert wurde, weil es halt nur teilfunktionalitäten gab, weiss ich nicht.
Ob ein pluginkonzept als komponentenmodell weniger leistungsfähig ist als das pipen zwischen Applikationen sehe ich nicht.
Dann könnte man ja auch gleich systemweit einen einzigen Adressraum nehmen. Spart auch Resourcen. Wenn ein Programm fehlerhaft ist, benutzt man es eben kein zweites Mal...mink99 schrieb:Das ewige Argument, ein fehlerhaftes Plugin .... lasse ich nicht gelten. Wenn ein Plugin abraucht, benutzt Mans halt beim nächsten mal nicht mehr, es gibt ja genug .....
OK, bereits oben hinzugefügt...mink99 schrieb:Wegen ipc , schau dir da nicht die jack API, sondern generell die ipc Dokumentation für Linux und auch die Intel Dokumente dazu an. Stichwort kontextwechsel.
Tschuldigung...mink99 schrieb:Ex IBM bitte ...
mink99 schrieb:Bezüglich direktes aufsetzen auf der Hardware :
Hatte ich glaub ich erläutert . Das war das mit den systemschnittstellen ... Es geht nicht um das direkte aufsetzen auf der Hardware, sondern den Übergang von einer High Level API für midi und einer für Audio (userspace) in die systemaufrufe (kernelspace) . Also eine aufgebohrte alsa-lib .
Wie bereits oben beschrieben, könnte sich jede Audio-Anwendung selbst zum "Master" über ALSA machen. Jede ernstzunehmende Audio-Anwendung unter Linux hat jedoch eine Jack-Anbindung. Warum? Weil Jack bereits alle von dir geforderten Featuers enthält, leistungsstärker ist und stabil läuft.mink99 schrieb:Bezüglich audioserver und Applikationen als Client vs eine Applikation/daw als audioserver . Das Szenario was du beschreibst, ist nur eines von mehreren möglichen. Ich denke, dass der Studio "Pro Tools" Workflow eher durch einen externen audioserver behindert wird. Und auch das "ich jamme mit ableton" hat andere Anforderungen . Diese unterschiedlichen einsatzszenarien in einem audioserver zu ermöglichen , erscheint mir zu overengineered oder enterprisey. Deshalb mein Vorschlag des anderen komponentenschnitts, alsa für io und jack im reinen usermode optional ausschliesslich für die Kommunikation . Das sorgt dafür, dass die Funktionalität , die du brauchst, nur dann zur Verfügung steht, wenn sie auch gebraucht wird und die anderen Szenarien nicht behindert werden.
mink99 schrieb:Zum Thema Komponenten / Plugins
Wiederverwendung von kleinen Funktionalitäten ist durchaus sinnvoll. Und eine komponentenschnittstelle absturzsicher zu gestalten, ist heute kein Problem mehr.
Für bestimmte Szenarien ist linux heute bereits gut einsetzbar, da bin ich nicht mehr so schwarz weiss wie eingangs noch, für andere sind meiner Meinung nach noch grosse Schritte notwendig. Ob aber die Developer diese anderen Szenarien auch sehen, und bereit sind, de dafür nötigen Umbauten vorzunehmen, werden wir sehen.
Hier wird Bitwig als erste komplett daw , die nach den auf den anderen Plattformen üblichen Konzepten konzipiert ist, hoffentlich ein Umdenken erzeugen.
dbra schrieb:Sieh's endlich ein, du hast verloren!
OK, da haste Recht. Aber es liegt auch an den verschiedenen Designphilosophien der Systeme. Wo bei Win eben eine DLL gebaut wird, kommt bei Un*x der Prozess.mink99 schrieb:Und da gibt es keinen Grund, warum ipc nicht die gleiche API anbieten könnte.
dbra schrieb:OK, da haste Recht. Aber es liegt auch an den verschiedenen Designphilosophien der Systeme. Wo bei Win eben eine DLL gebaut wird, kommt bei Un*x der Prozess.mink99 schrieb:Und da gibt es keinen Grund, warum ipc nicht die gleiche API anbieten könnte.
Echt? Also hier (Gentoo && Debian) kann man Ardour zwar starten ohne das jackd läuft, Ardour startet aber automatisch dann jackd. Paul Davis hat ja extra jackd programmiert um das ~modulare zu realisieren.mink99 schrieb:Selbst Ardour hat dieses Konzept verlassen, und integriert inzwischen die midi Funktionalitäten selber, und verlässt sich nicht mehr auf die Kombination jack / externer midiplayer.