Se connecter
Se connecter

ou
Créer un compte

ou

Sujet Tordre le cou au moteur audio:

  • 212 réponses
  • 40 participants
  • 28 971 vues
  • 56 followers
Sujet de la discussion Tordre le cou au moteur audio:
Ok, je vais essayer de mettre dans ce thread un petit recapitulatif d'avis t d'infos récupérés a droite a gauche sur le net, afin de ruiner le vieux mythe du moteur audio. merci de ne pas poster de commentaires et de ne pas entamer de fumeux debats sans arguments ici.
pour ça, un autre thread:
Tordre le coup au moteur audio: polemiques et crtiques
Afficher le sujet de la discussion
91
Par conséquent il y a certainement un truc perfectible dans Logic.

Il n’est pas exclu qu’une astuce ou un réglage côté Logic pourrait résoudre le problème, mais je ne saurais pas dire lequel. En fait si ça passe avec Kontakt seul, c’est étonnant que ça ne passe pas dans Logic.

Dans Logic tu as des effets sur la tranche où tu as mis Kontakt ? As-tu essayé sans ?


Il faut bien voir que les explications qu’on a données portent sur, disons, « les limites maximales ». Mais si les choses ne sont pas bien optimisées, on peut ne pas exploiter au mieux un cœur ; c’est à ce niveau là que les choses peuvent éventuellement s’arranger.

[ Dernière édition du message le 24/04/2018 à 09:35:10 ]

92
je viens de regarder, Analog Strings me semble en plus être effectivement un bouzin assez costaud mêlant samples et synthèse, de quoi mettre à genoux un coeur pas à la pointe de la rapidité...

C'est pour ça que j'apprécie la fonction de omnisphère permettant de charger les presets en version "lite" pour le jeu live

Avocat du diable et de sa musique et expert en vacuité dispendieuse.

93
J'ai dit que j'arrive quand même à m'en sortir, on peut aussi alléger les sons dans Kontakt mais ça s'entend, et en live j'aimerais mettre 1 Analog String + 1 substance dans un Kontakt.
Et sinon par rapport à ma question avant (post 90) sur le fait de placer Kontakt dans Vienne Ensemble Pro?
Pourquoi là c'est réparti sur les coeurs, pourquoi Logic n'utiliserait pas de façon masquée ce genre de subterfuge?... en tout cas c'est possible ;-)

[ Dernière édition du message le 24/04/2018 à 09:39:15 ]

94
Citation de Hakim+K :

La même chose joué dans le Kontakt Standalone ne sature.
Une séquence jouée par le même instrument Kontakt ne sature pas puisqu'elle est réparti sur les coeurs.
C'est donc bien l’interaction Kontakt + Logic + jeu live qui cause le problème.

Bon, donc d'une manière ou d'une autre, Kontakt est déjà parallélisé. J'imagine qu'il répartit simplement les différentes voix sur les cores, et que la synthèse d'une voix elle-même n'est pas parallélisée.

Après, on en arrive au grand problème suivant du parallélisme : l'allocation des ressources. Qui décide du nombre de cores à utiliser, et comment fait-on pour que tout ça ne se marche pas sur les pieds les uns des autres ?
Si tu exécutes Kontakt en standalone, il utilise tous les cores qu'il veut. Si tu l'exécutes en plugin, que se passe-t-il ? En vrai, je n'en sait rien ; je connais bien le standard LV2, mais pas trop VST. Le plugin peut-il exprimer qu'il veut plusieurs cores ? Je ne pense pas. Du coup, Logic l'exécute sur un core, comme un plugin normal. Et si jamais Kontakt crée en douce plus de threads dans le dos de Logic, ça entre en compétition avec les autres threads de Logic et c'est pire que mieux. Et même si on imagine que Kontakt puisse demander plusieurs cores, qui décide du nombre à lui allouer ? Pour décider, il faudrait connaître les besoins de tous les autres plugins et diviser. Pas impossible, mais assez chaud à faire.
95
Oui c'est l'explication habituelle du phénomène c'est d'ailleurs la raison qui fait qu'on doit régler Logic en multithread et mettre le paramètre multi-core du plugin Kontakt sur off, sinon c'est pire. Par contre dans la version standalone de Kontakt on met le paramètre multi-core sur le max. Kontakt permet des réglages différent entre standalone et plug.
Par contre si je mets Kontakt dans un bridge, la répartition fonctionne, bien que je le joue toujours depuis une piste de Logic.
96
Citation de Hakim+K :

Par contre si je mets Kontakt dans un bridge, la répartition fonctionne, bien que je le joue toujours depuis une piste de Logic.

c'est pourquoi tu n'acceptes pas les explications données plus ?!? ce serait intéressant de connaître le fin mot de l'histoire ...
97
Non mais il faut dire que Alex.d et moi, on a philosophé sur une question théorique assez simple : « peut-on paralléliser (= découper en petits bouts et mettre dans des threads, pouvant être répartis sur différents cœurs) n’importe quel petit morceau de logiciel ? ».

On a essayé d’expliquer pourquoi ce n’est pas toujours possible, et donc pourquoi il ne serait pas forcément intéressant d’avoir un ordinateur avec mille cœurs, chacun tournant à 500MHz.

Mais la réalisation technique concrète des choses est souvent loin d’être aussi bien que ce qui est théoriquement possible et optimal ; donc il peut y avoir des marges d’amélioration. Chose que recherche Hakim.

Là vu que ça marche en bridge, ça laisse penser qu’il y a encore des trucs pas bien optimisés dans Logic.

[ Dernière édition du message le 24/04/2018 à 15:39:36 ]

98
Citation :
Par contre si je mets Kontakt dans un bridge, la répartition fonctionne, bien que je le joue toujours depuis une piste de Logic.

Et dans ce cas tu as la même chaîne de traitements ? Notamment 1 Analog String + 1 substance dans Kontakt, + des effets dans Logic ? (bref tout pareil mais avec le bridge en plus)

Si oui, il semble que le problème et les limitations soient du côté de Logic. Déjà le fait que Logic soit incompatible avec le multicore de Kontakt, ça ne me semble pas génial quand même.

Citation :
Et si jamais Kontakt crée en douce plus de threads dans le dos de Logic, ça entre en compétition avec les autres threads de Logic et c'est pire que mieux.

Vu le test en bridge, ça semble plutôt mieux se passer.

[ Dernière édition du message le 24/04/2018 à 15:41:24 ]

99
Citation de Hakim+K :
Citation :
C'est juste ce principe logique qu'il est nécessaire de piger.

On la piger depuis longtemps, ça me saoule quand tu me parles comme à un collégien avec ton y=f(g(x)), ah non je ne semble pas piger ça :8O:... n'importe qu'elle imbécile comprend que dans un calcul on fait d'abord les calculs intermédiaires dans l'ordre adéquat...
Sauf que la programmation ce n'est pas juste la réplication de calculs. Il existe aujourd'hui des techniques qui permettent de mutualiser les cœurs pour fabriquer une sorte de gros cœur, du coup ta fonction g(x) est plus vite réalisé avant de devoir appliquer f. Par ailleurs en programmation orienté objet, selon le principe de substitution de Liskov il est possible (même si cela vous semble une aberration) d'effectuer le calcul final Y sans avoir le résultat de g(x) en le remplaçant par une forte probabilité puis en le substituant à la toute fin (en gros hein, c'est beaucoup plus bizarre que ça en réalité).
Non la programmation n'est pas (plus) la réplication en ligne de code de processus mathématiques. Mais je ne suis pas assez calé pour vous expliquer la programmation orienté objet, qui par ailleurs est à la base du concept d'AI.
Je parie juste que le problème initial de la surcharge single-core en temps réel va être résolu... ce n'est qu'une question de temps.
Citation :
On ne peut pas faire en programmation des choses qui sont impossibles dans leur nature même.

Si on le peut, des tas de choses impossibles par calcul sont réalisées aujourd'hui par des programmes.

Citation :
Il a donc fallu adapter les STAN pour bien exploiter les processeurs multicœurs. Logic a dû être adapté un peu moins rapidement et après les autres STAN. Depuis la version 10.3.3 il n’y a plus besoin de créer des bus pour exploiter davantage de cœurs ; j’imagine que désormais Logic crée un thread par tranche, les threads pouvant être répartis sur différents cœurs.

Non cette explication n'est pas suffisante. Logic crée peut-être un thread par tranche mais cela n'explique comment ce fait t'il que sur une seule et même tranche jouée en live aujourd'hui je peux mettre 10 effets de Logic sans constater de surcharge alors que j'en avais autrefois avec 4 ou 5 (selon les types hein). Je reste pourtant sur un unique thread traité par un seul cœur, selon toi, ... moi je suppose que ça fonctionne autrement aujourd'hui, mais je ne peux pas expliquer comment. Je suppose que tous les effets de Logic on été ré-écrit pour utiliser le multi-coeurs même lorsqu'ils sont en cascade. Et je ne crois pas qu'il soit nécessaire d'attendre la fin du calcul du 1er effet pour appliquer le 2ème effet, là encore il y a des mécanismes de substitution et/ou d'anticipation. Surtout avec des effets lourds, je n'imagine pas le process attendre bêtement la fin du traitement d'une grosse reverb à convolution avant de passer à la suite, même si c'est le même signal qui les traverse. On est beaucoup plus malin aujourd'hui. La programmation n'est pas forcement répliquer le comportement physique de la réalité, on n'est pas obliger de faire comme si on branchait des effets hardware en cascade dans la réalité. Vous raisonnez comme si la programmation était la copie de phénomènes réelles.
Par contre les effets et IVs des autres constructeurs ne sont pas forcement écrit de la bonne façon (pour Logic), d'où le fait qu'il n'y a pas de surcharge avec les effets de Logic alors qu'il peut (pas forcement hein) y en avoir avoir les effets d'autres marques (notamment avec NI et selon ma petite expérience pas avec IKM).
J'accepte juste qu'on peut faire en programmation des choses qui me dépassent.
Citation :
Les plugins qui sont « multithreading », comme Kontakt, peuvent exploiter plus d'un thread uniquement quand certaines de leurs opérations ne sont pas liées/dépendantes entre elles.

C'est peut-être vrai pour Kontakt (d'où les problèmes) mais ce n'est pas incontournable. Si le multi-threading n'est pas capable de contourner l'interdépendance des opérations (car presque tout est interdépendant) autant dire qu'il n'a pas d'avenir, pourtant...

J'ai rarement vu autant de conneries en un seul post. Bravo. Tu n'as rien compris au traitement du signal, a l'IA ou meme a la programmation.
100
icon_facepalm.gif
Miles, un peu de tact, que diable ! :-D

En plus on s’est expliqué et fait des bisous dans les messages après celui que tu cites !

Allez, peace :boire: :bravo:

[ Dernière édition du message le 24/04/2018 à 16:52:09 ]