Tordre le cou au moteur audio:
- 212 réponses
- 40 participants
- 29 226 vues
- 56 followers
Anonyme
pour ça, un autre thread:
Tordre le coup au moteur audio: polemiques et crtiques
Hakim+K
avec le binding des threads de Logic qui est vraisemblablement hérité par les threads de Kontakt qui sont alors attaché à un seul coeur.
Kontakt pourrait créer des threads qui ne seraient plus liés au cœur qui héberge le thread de la tranche de Logic ?
Je ne vois pas trop comment, ça revient à sortir de soi-même, mais rien n'est impossible.
[ Dernière édition du message le 25/04/2018 à 21:17:36 ]
Darkmoon
Si Logic fait son boulot et que ça provient de Kontakt, qu’est-ce qui explique que ce dernier fonctionne sans problème dans certains autres DAW? N’y a-t-il pas, forcément, une implication/relation entre le DAW/Kontakt puisque ce dernier pose prob dans Logic, mais pas dans d’autres DAW?
"Si t'enregistres à Poudlard, avec l'ingé son Dumbledore, les lois physiques tu peux t'en foutre. Mais dans l'monde réel, les lois physiques, les mesures, le dBFS, tout ça existe bel et bien." youtou
Hakim+K
ce qui cloche entre Logic et Kontakt, puisque ça marche mieux avec d'autres STAN et ça marche mieux avec un bridge
Danbei
ce dernier pose prob dans Logic, mais pas dans d’autres DAW?
Est ce qu'on est sur de ça ? J'ai peut être raté quelque chose dans la discussion, mais si j'ai bien compris :
-Hakim tu as testé dans Logic et en standalone mais pas avec d'autre DAW.
-Et toi Darkmoon tu as tester dans Studio One et FL studio mais pas dans Logic.
Vos config sont sans doute différentes donc on ne peut pas conclure que ça marche moins bien dans Logic que les autres DAW.
Mon hypothèse c'est que tout les DAW on a peu près le même problème.
miles1981
Question pour miles1981/alex.d.
Si Logic fait son boulot et que ça provient de Kontakt, qu’est-ce qui explique que ce dernier fonctionne sans problème dans certains autres DAW? N’y a-t-il pas, forcément, une implication/relation entre le DAW/Kontakt puisque ce dernier pose prob dans Logic, mais pas dans d’autres DAW?
Parce que les autres STANs ne font pas de binding des threads ?
DrPouet > oui, c'est mieux quand un thread haute priorité est bindé à un coeur de sorte que les données de ce thread ne bougent pas et qu'un autre thread haute priorité ne lui pique pas du temps.
Audio Toolkit: http://www.audio-tk.com/
[ Dernière édition du message le 25/04/2018 à 22:24:08 ]
miles1981
Kontakt pourrait créer des threads qui ne seraient plus liés au cœur qui héberge le thread de la tranche de Logic ?
Une sorte de « vraie option muliticore » ?
Oui, mais c'est pas recommandé.
Encore une fois, la seule option légitime est un thread pool de threads haute priorité qui serait fourni par la STAN.
Audio Toolkit: http://www.audio-tk.com/
Jimbass
Par exemple, un collègue arrivait il y a quelques années, avec du traitement d'image assez optimisé en SSE2 sur deux cœurs, à saturer la bande passante du cache L2 partagé.
Un autre exemple est celui de deux threads, qui en accédant à des tableaux mal rangés au regard de l'associativité du cache, s'évictent mutuellement les données.
Il y a plein de mécanismes comme ca, qui font assez rapidement dégringoler la perfo (ou la font varier de manière imprévisible) quand plusieurs choses se passent en même temps.
Musikmesser 2013 - Bullshit Gourous - Tocxic Instruments - festivals Foud'Rock, Metal Sphère et la Tour met les Watts
alex.d.
Le souci arrive donc bien si tous les plugins se créent leur propre thread pool avec des threads temps réel (+ spin en général dans le thread pools pour permettre d'avoir une réactivité).
En général, tu ne fais pas d'attente active. Ça peut arriver parfois en HPC (et à condition de ne pas faire du green !), mais ça ne marche que pour une appli qui est seule sur son noeud, pas pour une bibliothèque qui doit partager les cores, et a fortiori pas pour un plugin qui sait par définition qu'il n'est pas seul.
Je ne connais pas les détails sous Windows ou Mac, mais sous Linux, avec jackd il n'y a que de l'attente passive pour passer la main aux threads. Ça se fait avec des write() et poll() (et non un pthread_cond_signal() comme on pourrait l'envisager intuitivement) parce que sur l'ensemble des systèmes supportés, c'est l'appel qui garantit que c'est précisément le thread temps-réel qui sera réveillé dès qu'il sera prêt. De mémoire, il me semble qu'on a aussi la garantie avec les sémaphores, mais pas sur tous les sytèmes.
Bon, après peut-être que sous Mac, il y a de l'attente active dans Logic ou dans Kontakt, mais alors là, tu m'étonnes que ça pète ! Mais je ne pense pas qu'ils soient aussi bêtes, au point de mettre de l'attente active dans un truc dont tu sais qu'il sera composé avec autre chose et donc qu'il ne sera pas tout seul.
antart
Citation de Papy :ouais sauf que c'est bien connu que le moteur audio de fl c'est de la m*rde.
J'imagine que c'est une plaisanterie/troll, mais étant donné qu'il gère parfaitement le multithreading avec Kontakt (et de gros patchs/instruments orchestraux que j'utilise), l'on peut, à minima, conclure que FL, ainsi que Studio One avec lequel je n'expérimente aucun problème avec Kontakt, possèdent tous deux un moteur audio n'ayant pas les problèmes de Logic concernant Kontakt et le multithreading!
yes c'etait une petite blague car j'entend et vois souvent beaucoup de monde critiquer FL alors que de mon coté même si ça n'est plus mon DAW principal je l'utilise encore car c'est un monstre plein d'atouts!
Darkmoon
"Si t'enregistres à Poudlard, avec l'ingé son Dumbledore, les lois physiques tu peux t'en foutre. Mais dans l'monde réel, les lois physiques, les mesures, le dBFS, tout ça existe bel et bien." youtou
- < Liste des sujets
- Charte