Bonjour,
Heureux de lire @Janacek que ma contribution furtive a été utile. Je vais reposter et reformuler pour davantage de pédagogie.
Auparavant, permettez-moi de souligner encore l'exceptionnelle qualité du service offert par Yu-san:
Pour ceux qui utilisent Diretta sous Gentoo Player et/ou Audio-Linux, il me semble que vous avez raté une partie du film de l'installation puisqu'elle est faite par l'éditeur.
Sur le Host, Diretta a deux modes de fonctionnement différents ; chaque mode a sa propre configuration.
Comme le souligne @Minh cela n'est pas obligatoire, mais j'ai une préférence pour fonctionner avec méthode...
Par ailleurs, si un service Diretta refuse de s'arrêter, comme cela semble avoir été le cas pour Janacek, il faut demander à l'éditeur de quelle façon le tuer proprement. Chez moi par exemple, lorsque HQPlayer a 'pré-empté' le driver Diretta syncAlsa, il peut refuser de s'arrêter. Je suis obligé de tuer le processus HQPlayer pour forcer l'arrêt du service diretta_sync_host et démarrer MemoryPlay.
Tant que ces services ne sont pas arrêtés proprement, on ne peut pas me semble-t-il démarrer MemoryPlay dans de bonnes conditions.
Pour régler ces problèmes, n'hésitez pas à rebooter votre installation. Je vous recommande de rebooter le target en premier (dans l'interface ASIO sous Windows, choisir Config->dmesg->reboot). Ensuite rebooter le serveur.
Sur les sujets de configuration et comme indiqué à plusieurs reprises:
Selon mon expérience, et dans l'ordre des rendements décroissants:
Heureux de lire @Janacek que ma contribution furtive a été utile. Je vais reposter et reformuler pour davantage de pédagogie.
Auparavant, permettez-moi de souligner encore l'exceptionnelle qualité du service offert par Yu-san:
- j'ai eu une petite frayeur ce matin parce que la mise à jour de mon DDC-0 ne s'est pas terminée comme escompté. Contacté par mail, Yu-san a répondu en quelques minutes et m'a envoyé un firmware provisoire qui m'a permis de restaurer le DDC-0 en moins de temps qu'il ne faut pour l'écrire. Chapeau pour cette réactivité et cette qualité de service.
- j'ai pendant le temps qu'a pris cette opération resorti un vieux Lucia que j'avais à la maison. J'en ai fait l'update en 6_147_3 et l'ai rebranché. Eh bien je suis impressionné par ce qu'il délivre. Avec une interface USB->RJ-45 il fonctionne en jumbo frames à 9014 et il supporte bien entendu le mode 3. Le niveau de SQ est exceptionnel. Manque un peu de vibration complémentaire offerte par le DDC-0 et l'horloge, mais c'est déjà du très haut niveau. Il y en avait un qui trainait dans les PA à prix cassé...
- ce sujet Lucia me permet de rendre hommage à la façon dont Yu-san traite les produits pour lesquels il a déclaré "EOL" ; il continue à en faire bénéficier les utilisateurs de nouvelles versions majeures. C'est une attitude commercialement remarquable et qui mérite d'être soulignée
Pour ceux qui utilisent Diretta sous Gentoo Player et/ou Audio-Linux, il me semble que vous avez raté une partie du film de l'installation puisqu'elle est faite par l'éditeur.
Sur le Host, Diretta a deux modes de fonctionnement différents ; chaque mode a sa propre configuration.
- le mode dit syncAlsa, est un ensemble de drivers permettant à un player externe (Audirvana, HQPlayer) d'utiliser Diretta ; sous GentooPlayer, cela semble s'appeler Diretta Host Protocol et la configuration correspondante : Config.
À noter que la mise à jour des drivers ne suffit pas car il est nécessaire que le host charge un module dans le noyau. Cela se fait au démarrage de la machine et il convient pour cela rebooter la machine après une mise à jour de driver.
- le mode dit MemoryPlay, dont le logiciel de commande est MemoryPlayController ; la configuration de ce mode semble s'appeler MemoryPlayHost Config
Comme le souligne @Minh cela n'est pas obligatoire, mais j'ai une préférence pour fonctionner avec méthode...
Par ailleurs, si un service Diretta refuse de s'arrêter, comme cela semble avoir été le cas pour Janacek, il faut demander à l'éditeur de quelle façon le tuer proprement. Chez moi par exemple, lorsque HQPlayer a 'pré-empté' le driver Diretta syncAlsa, il peut refuser de s'arrêter. Je suis obligé de tuer le processus HQPlayer pour forcer l'arrêt du service diretta_sync_host et démarrer MemoryPlay.
Tant que ces services ne sont pas arrêtés proprement, on ne peut pas me semble-t-il démarrer MemoryPlay dans de bonnes conditions.
Pour régler ces problèmes, n'hésitez pas à rebooter votre installation. Je vous recommande de rebooter le target en premier (dans l'interface ASIO sous Windows, choisir Config->dmesg->reboot). Ensuite rebooter le serveur.
Sur les sujets de configuration et comme indiqué à plusieurs reprises:
- le mode 3 me semble être une priorité. Il est auto-adaptatif et bénéficie de configurations de type 'Flexcycle=enable' ou 'Flexcycle=max' ; si vous avez un target Diretta, vous pouvez voir dans le driver ASIO sous Windows avec config->dmesg le dialogue de négociation entre serveur et target. Sous Linux, vous pouvez faire 'journalctl -u diretta_sync_host.service -n 1000' et vous suivez ainsi le déroulement.
Dans la configuration, je vous invite à ne toucher à rien, ou au moins possible.
Ici voici ma propre config:
Code :[global]
Interface=enp5s0 <- j'ai 2 interfaces sur ma machine et en sélectionne une qui est plus adaptée
TargetProfileLimitTime=0 <- important pour faire fonctionner les jumbo-frames
ThredMode=257 <- cette valeur est la valeur prise par le serveur en mode DPDK. Mais 1 fonctionne aussi parfaitement
InfoCycle=100000 <- ne pas toucher
FlexCycle=enable <- important pour le mode 3
CycleTime=2930 <- j'ai mis cela car je fonctionne exclusivement en upsampling, avec 8fs en PCM ou DSD256
CycleMinTime= <- ne pas mettre de valeur ; c'est source de confusion pour l'algo de Yu
Debug=stdout <- si vous voulez pouvoir utiliser journactl ou mon script python
periodMax=8 <- vous pouvez laisser la valeur par défaut
periodMin=4 <- vous pouvez laisser la valeur par défaut
periodSizeMax=8192 <- vous pouvez laisser la valeur par défaut
periodSizeMin=4096 <- vous pouvez laisser la valeur par défaut
syncBufferCount=5 <- vous pouvez laisser la valeur par défaut
alsaUnderrun=enable <- important
unInitMemDet=disable
CpuSend=1 <- permet de sélectionner le core utilisé
CpuOther=2 <- permet de sélectionner le core utilisé
LatencyBuffer=0
Ici le dialogue entre serveur et Lucia ce matin ; et oui, Lucia fonctionne avec les jumbo-frames !
Code :Nov 11 11:48:33 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: Loop Thread CPU set 2,1
Nov 11 11:48:33 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: Loop Thread Priority set IDLE
Nov 11 11:48:34 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: much interface enp5s0 fe80::4159:9cc:2323:3a97 ifno:3
Nov 11 11:48:34 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: Diretta Find Library ReleaseNo : 147
Nov 11 11:48:34 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: InterfaceMTU=9026 ActiveMtu=9018
Nov 11 11:48:34 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: InterfaceMTU=9026 ActiveMtu=2026
Nov 11 11:48:34 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: TargetName : Lucia_Bridge:Holo Audio UAC2.0 Gen2.1 Enhanc
Nov 11 11:48:34 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: default profie
Nov 11 11:48:34 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: Setting: syncWorkerMode : 257
Nov 11 11:48:34 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: Setting: syncInfoCycle : 100000
Nov 11 11:48:34 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: Setting: InfTargetProfileLimitTime : 0
Nov 11 11:48:34 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: Setting: InfFlexCycle : Var
Nov 11 11:48:34 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: Setting: InfCycleTime : 2930
Nov 11 11:48:34 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: Setting: InfCycleMinTime : 0
Nov 11 11:48:34 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: Setting: InfLatencyBuffer : 0
Nov 11 11:48:34 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: Diretta Sync Library ReleaseNo : 147 [3]
Nov 11 11:48:34 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: Status : Holo Audio UAC2.0 Gen2.1 Enhanc Control
Nov 11 11:48:34 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: Diretta Control Library ReleaseNo : 147
Nov 11 11:48:34 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: sincSupportPCM=2190433324803 si=8
Nov 11 11:48:34 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: sincSupportDSDmsb=68195534831619 si=0
Nov 11 11:48:34 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: sincSupportPCM=2190433324803 si=8
Nov 11 11:48:34 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: sincSupportDSDmsb=68195534831619 si=16
Nov 11 11:48:34 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: LATENCY_REQ hw=10000us latency=100000us
et démarre en mode 3:
Code :Nov 11 11:49:35 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: Host Phase Normal
Nov 11 11:49:35 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: Play Phase Normal
Nov 11 11:49:35 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: MS DDS(mode3)
Nov 11 11:49:35 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: redy to play loop start0
Nov 11 11:49:35 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: connectWait notimeout
Nov 11 11:49:35 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: connectWait 2
Nov 11 11:49:35 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: connect DONE
Nov 11 11:49:35 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: Target: ts connect
Nov 11 11:49:35 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: SyncBuffer::play
Nov 11 11:49:35 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: play 2
Nov 11 11:49:35 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: Target: Connect
Nov 11 11:49:35 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: info rcv 2 -0.1210 -0.1210 0.0170 cy=2881088563
Nov 11 11:49:35 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: info rcv 2 -0.1210 -0.1210 0.0219 cy=2866777039
Nov 11 11:49:35 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: info rcv 2 -0.0920 -0.0920 0.0228 cy=2864272522
Nov 11 11:49:35 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: info rcv 2 -0.0920 -0.0920 0.0265 cy=2853359986
Nov 11 11:49:35 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: info rcv 2 -0.0630 -0.0630 0.0262 cy=2854254456
Nov 11 11:49:35 hqp-ryzen-7 syncAlsa_gcc15_x64_zen4[6575]: info rcv 2 -0.0330 -0.0330 0.0245 cy=2859084595
- l'activation des jumbo-frames est un sujet plus délicat ; il nécessite que tous les éléments réseau soient compatibles avec les jumbo-frames. Je vous invite à tester avant de vous lancer.
Commencez par regarder la doc de tous les switchs qui sont sur le trajet entre votre serveur et votre target et vérifiez qu'ils supportent les MTU adaptés ; si nécessaire configurez les. Il est peu vraisemblable qu'ils aillent au dela de 10'000 bytes. Mais c'est déjà très bien !
Sous Windows, avec le driver ASIO, en mode config, vous pouvez voir l'adresse ipv6 de votre target.
Sous Linux, vous pouvez taper l'instruction ip addr pour voir vos interfaces réseau.
Lorsque vous avez ces infos, vous pouvez faire un ping v6:
ping6 -s 8900 -M do fe80::2e0:4cff:fe38:3cd%enp5s0 -c 4 (ping6 pour ipv6, -s 8900 pour tester que cela passe en 8900 bytes, -M do pour interdire aux trames d'être scindées sinon le test ne sert à rien, fe80::2e0:4cff:fe38:3cd%enp5s0 adresse ipv6 du target % nom de l'interface du votre serveur, -c 4 se limite à 4 tests)
Voilà pour le Lucia avec l'interface USB->RJ-45
Code :PING fe80::2e0:4cff:fe38:3cd%enp5s0 (fe80::2e0:4cff:fe38:3cd%enp5s0) 8900 data bytes
8908 bytes from fe80::2e0:4cff:fe38:3cd%enp5s0: icmp_seq=1 ttl=64 time=1.56 ms
8908 bytes from fe80::2e0:4cff:fe38:3cd%enp5s0: icmp_seq=2 ttl=64 time=1.49 ms
8908 bytes from fe80::2e0:4cff:fe38:3cd%enp5s0: icmp_seq=3 ttl=64 time=1.50 ms
8908 bytes from fe80::2e0:4cff:fe38:3cd%enp5s0: icmp_seq=4 ttl=64 time=1.48 ms
Selon mon expérience, et dans l'ordre des rendements décroissants:
- activation du mode 3
- jumbo-frames
- optimisation du serveur
- passage à memoryplay qui a selon moi perdu bcp de son attrait une fois que les 3 étapes précédentes sont réalisées.
![[Image: banniereforumhifi.jpg]](https://i.postimg.cc/wxwWFvzj/banniereforumhifi.jpg)

