Note de ce sujet :
  • Moyenne : 3.5 (2 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Le projet Tune, un concurrent à Roon, libre, gratuit et Français ?
#81
(06-12-2026, 10:28 AM)renesenses a écrit : Bien sur !
En réponse a une appli remote.
Est-ce une appli remote dédiée ? (Android et/ou iOS)
si oui laquelle
Merci


(06-12-2026, 01:55 PM)renesenses a écrit :   L'approche Roon (API privée) nécessiterait un accord avec Signalyst. En DLNA, le résultat audio est identique — c'est juste le canal de contrôle qui diffère.

Cette affirmation est-elle basée sur des tests ou juste une déduction logique ?
Merci
Système
- PLiXiR Elite BAC 3000
- ENTREQ Apollo RJ45 + Ground Box
- GENUIN AUDIO Tars [PINK FAUN Ultra OCXO] - HQPlayer - JPlay iOS
- GOLDMUND Mimesis 16HD - Prana Active Speakers
#82
Bonjour 
Je crois que l'option UPnP (port 8019) sous HQP v6 dépend de la sélection dans advanced settings UPnP Free.
Pour info je me suis amusé à tester aussi le SOtM SMS-200 Neo Ultra en mode MPD/UPnP (à la place du mode NAA HQPlayer 6) sous mon windows 11 Tune v0.8.87 et cela fonctionne bien aussi...
#83
@renesenses : merci, je n'ai pas forcément les outils IA suffisant.

Mais en utilisant Whireshark, j'ai un peu avancé..
A voir ici : https://chatgpt.com/share/6a2c4e71-5b48-...52ef553b90

Et avec une autre IA (mais pas validée..) :

? Investigation Technique : Protocole Propriétaire HQP (HQLink)

Cible : HQP Desktop Server
Port identifié : 4321/TCP
Statut : Protocole binaire propriétaire avec enveloppe XML, fonctionnant en mode "Push" asynchrone.



1. ARCHITECTURE DU PROTOCOLE

Le protocole n'est pas une API Requête/Réponse classique (type HTTP/REST). C'est un flux binaire persistant.
  • Transport : TCP brut.
  • Encodage des données : XML UTF-8.
  • Encapsulation : Chaque message XML est précédé d'un en-tête binaire de 6 octets et suivi d'un caractère de fin de ligne (0x0A).

Structure d'une trame :
Code :
[ HEADER 6 OCTETS ] + [ PAYLOAD XML ] + [ 0x0A (LF) ]

Détail de l'en-tête (6 octets) :
  • Octet 1 : Constant 0x0F.
  • Octets 2 à 5 : Variables (ex: B4 C8 42 00).
    Hypothèse forte : Il s'agit d'un ID de session, d'un timestamp, ou d'un checksum généré aléatoirement à chaque connexion. C'est le point de blocage actuel. Le serveur rejette silencieusement les paquets avec un en-tête invalide.
  • Octet 6 : Souvent 0x00.



2. SÉQUENCE DE CONNEXION (HANDSHAKE)

Pour qu'une session soit valide, le client doit respecter une séquence stricte. L'envoi direct de commandes est ignoré.

  1. Établissement TCP : Connexion sur le port 4321.
  2. Commande d'Initialisation (Obligatoire) :
    Le client doit envoyer en premier une commande <GetJunkFilters>.
    Cette commande contient la liste des filtres supportés (20k, 30k, 2x, 4x, etc.).
    Note : Sans cette commande, le serveur n'accepte aucune requête ultérieure.
  3. Synchronisation d'État :
    Le client doit ensuite envoyer un paquet <Status> COMPLET.
    Ce paquet doit contenir tous les attributs d'état (volume, position, mode, filtres, etc.). Un `<Status/>` vide ou partiel est ignoré.
  4. Mode "Push" (Flux) :
    Une fois la séquence d'init validée, le serveur ne répond pas aux requêtes.
    Le serveur envoie spontanément des paquets `<Status>` mis à jour uniquement lorsqu'un événement se produit (changement de piste, Play/Pause, changement de volume).

⚠️ Contrainte majeure : Le serveur semble gérer une seule connexion active à la fois. Si le client officiel est connecté, il bloque les autres connexions (ou empêche l'envoi de flux vers les nouveaux clients). Il faut impérativement fermer le client officiel pour tester un script tiers.



3. EXEMPLES DE TRAMES (HEXADÉCIMAL)

A. Commande d'Init (`GetJunkFilters`)
Code :
0F B4 C8 42 00 00 3C 3F 78 6D 6C ... (<?xml version="1.0"...)
... 3C 47 65 74 4A 75 6E 6B 46 69 6C 74 65 72 73 3E ... (<GetJunkFilters>...)
... 0A
En-tête observé : `0F B4 C8 42 00 00` (Variable)

B. Paquet de Données (Réponse Serveur / Push)
Contient les métadonnées : Titre, Artiste, Album, Bitrate, Position.
Code :
<Status ... state="2" song="Titre de la piste" artist="Artiste" ...>
  <metadata bitrate="9216000" mime="audio/flac" ... />
</Status>



4. POINTS DE BLOCAGE & PISTES POUR LA SUITE
  • Génération de l'En-tête (Prioritaire) :
    Nous n'avons pas l'algorithme pour générer les octets 2 à 5 de l'en-tête. Ils changent à chaque connexion.
    Piste d'investigation : Capturer 3 connexions successives avec Wireshark et comparer les 6 premiers octets pour trouver la logique (incrément, timestamp, ou aléatoire).
  • Analyse du Binaire Client :
    Si l'algorithme est trop complexe, examiner l'exécutable du client HQP (`HQPClient.exe`) avec un outil comme Ghidra ou IDA Pro pour extraire la fonction de calcul de l'en-tête.
  • Contournement Web :
    Vérifier dans la configuration du serveur si une option "Web Interface" ou "Remote API" peut être activée sur un port HTTP (80/8080). Ce serait beaucoup plus simple à implémenter.



? Outils utilisés : Wireshark, PowerShell (.NET Sockets), Analyse Hexadécimale.
Conclusion : Le protocole est robuste mais "fermé". Il est possible de lire les flux (vol de connexion) si l'on parvient à simuler l'en-tête binaire valide et à envoyer la séquence d'init complète, mais le serveur reste muet si la moindre étape est incorrecte.
! Mon installation !
ROON + HQP / Hdplex H3-i5 > DST-00 Diretta > HOLO Spring 3 > SQM > Benchmark AHB2 / Wilson Benesch Square5
#84
je redis: je suis conquis!!!
#85
Version actuelle : v0.8.99, la 9 n'est pas loin !  Shy
"Les vinyles neufs qui sortent actuellement sont fait à 99,99% avec les mêmes fichiers numérique 
que ceux qui sont diffusés en streaming, gravés sur CD ou les fichiers eux-mêmes, vendu tel quel, 
par les maisons de disques et, de plus, très (trop) chers ... et n'ont donc aucun intérêt ..."

                                          


#86
@Lio67 — Bonnes questions !

  App Remote : oui, il y a des apps dédiées :
  - iOS/iPadOS/macOS — app native SwiftUI sur TestFlight (supporte même iPadOS 16 depuis cette semaine pour les vieux iPad en télécommande). Inscription TestFlight via le lien sur mozaiklabs.fr.
  - Android — app Flutter en beta via Firebase App Distribution. Demande d'accès sur le forum mozaiklabs.fr.
  - Web — le client web sur localhost:8888 fonctionne aussi très bien depuis un mobile/tablette en mode responsive.

  DLNA audio identique : c'est factuel, pas une déduction. En DLNA (UPnP AV), Tune envoie le flux audio brut (FLAC bitperfect) via HTTP au renderer. Le fichier audio transite bit-pour-bit — aucun traitement, aucun resampling, aucun transcodage (sauf si le format source n'est pas supporté par le renderer, auquel cas Tune transcode en FLAC). Le protocole DLNA ne fait que pointer le renderer vers une URL de stream. Que le contrôle vienne de Tune, BubbleUPnP ou un autre control point, le renderer reçoit exactement les mêmes octets.

  @Papytechnofil — Super retour avec le SOtM SMS-200 Neo Ultra + HQP v6 ! Le support UPnP sur le port 8019 fonctionne bien depuis la v0.8.77. Content que ça marche.

  @zaurux — Excellente analyse du protocole HQLink. On garde ça pour une future intégration native — le reverse engineering du handshake binaire sur le port 4321 est précieux.

  @Roro62 — Merci ! ?

  @Van Der Graaf Generator — La v0.9 approche en effet ! On est en phase de stabilisation et refactoring — le moteur est solide (100% Rust, 15 MB, zéro dépendance externe), on polit l'ensemble avant le passage en v0.9 mais je pense après la v0.8.150 car l'UI réclame réclame encore beaucoup de correctifs.
#87
La chaleur ??? .. sans doute ! Je ne trouve pas l'apk android ?
! Mon installation !
ROON + HQP / Hdplex H3-i5 > DST-00 Diretta > HOLO Spring 3 > SQM > Benchmark AHB2 / Wilson Benesch Square5
#88
Il n'y a pas encore d'apk mais je viens de t'inviter...
#89
@zaurux Alors l'expérience Android ?
#90
A terme, est-il prévu une installation via un .deb ou flatpak pour les environnements sous les diverses distributions Linux ?


Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  Tune en version béta C_MTA 1 412 05-18-2026, 11:51 AM
Dernier message: mishelinka
  TUNE = Nouveau logiciel de lecture - streaming gratuit Benarsky 2 627 05-11-2026, 10:45 PM
Dernier message: Steph44200
  Roon volpone75 6,692 5,644,153 05-04-2026, 07:16 PM
Dernier message: bbill
  Problème Roon vs Ropieee fabs35 9 1,673 12-29-2025, 08:22 PM
Dernier message: fabs35
  Quel hardware & OS pour MinimServer ? et Roon ? bbill 6 2,316 08-04-2025, 10:36 AM
Dernier message: bbill

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)