Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Solution pour filtrage actif "logiciel" avec carte USB XMOS multicanal
#1
Pour ceux que cela peut intéresser, je viens de tester une nouvelle carte USB multicanal, à base du "chip" XMOS XCORE-200 (99$):

http://www.diyinhk.com/shop/audio-kits/1...f-pcb.html

L'intérêt est de pouvoir mettre en place un filtrage actif "logiciel", et éviter ainsi d'avoir recours à des cartes DSP externes (souvent couteuses). MiniDSP offre une carte équivalente, mais sur la base d'une version plus ancienne de la puce XMOS: https://www.minidsp.com/products/usb-aud...sbstreamer

Côté "soft", il y a pas mal de solutions: BruteFIR (qui semble complexe), ecasound et les "plugins" LADSP dans Alsa. C'est cette dernière solution que j'ai commencé à tester. 

Voici ici, par exemple: https://www.sidtechtips.com/2016/03/13/r...sover-dsp/

L'utilisation des plugins est définie dans le fichier /etc/asound.conf sous linux. Cela semble simple au premier abord, mais il faut en fait pas mal tâtoner car la syntaxe n'est pas très "permissive". Il n'y a pas non plus de documentation très explicite sur le sujet (mais pas mal d'infos sur le forum DIY Audio).


Code :
pcm.!default {
   type route
   ttable.0.0 1
   ttable.1.2 1
   ttable.1.3 1
   ttable.0.1 1
   type plug
   slave.pcm crossover
}
ctl.!default {
    type hw
    card D20
}

pcm.crossover {
    type ladspa
    slave.pcm speaker
    path "/usr/lib/ladspa"
    channels 4
    plugins
    {
         0{
              label RTlr4lowpass
              policy none
              input.bindings.0 "Input"
              output.bindings.0 "Output"
              input { controls [2000] }
         }
         1 {
               label RTlr4hipass
               policy none
               input.bindings.1 "Input"
               output.bindings.1 "Output"
               input { controls [2000] }
         }
         2 {
               label RTlr4lowpass
               policy none
               input.bindings.2 "Input"
               output.bindings.2 "Output"
               input { controls [2000] }
         }
         3 {
               label RTlr4hipass
               policy none
               input.bindings.3 "Input"
               output.bindings.3 "Output"
               input { controls [2000] }
         }
     }
}

pcm.speaker {
   type plug
   slave.pcm "surround41:D20
}

Sur ma carte Alix 3D2, avec un modeste processeur Geode à 500MHZ, la CPU tourne à 30% avec squeezelite.
Il me reste à optimiser les fréquences/filtres. Je compte également essayer d'activer le filtrage avec Airplay (plugin shairport-sync), mais pour cela je crois comprendre qu'il faut passer par ecasound (shairport génère un flux qui est ensuite repris par ecasound).

Toutes suggestions sont le bienvenue !
Répondre
#2
Hello,

Sujet intéressant ! Merci...
J'ai du mal à voir comment tu géres tes courbes de filtrages via ce fichier !?

Si j'ai bien compris ce boitier : il est I2S est fait office d'interface USB ensuite c'est bien ça ? donc compatible avec toutes les cartes faisant de l'I2S ?
Sais-tu si cette interface existe en I2S vers I2S, l'idée étant de l'intercaler entre une relocker I2S et une sortie I2S - HDMI ...

Merci
Streamer : Windows Server 2019 & AO 3 & HQPlayer | Aurdirvana -> Diretta
Dac : PS Paul Hynes SR4 -> Chord 2Qute
Casque : Auris HA-2SF -> Focal Clear MG
Démat : Auris HA-2SF -> Atoll IN100 By JCT (Ampli) -> Harbeth LS3/5A 11 Ohms
Vinyle : Thorens TD 295 MK IV & Autio-Technica AT-150MLX




Répondre
#3
(06-29-2016, 02:01 PM)LittleScarabee a écrit : Hello,

Sujet intéressant ! Merci...
J'ai du mal à voir comment tu géres tes courbes de filtrages via ce fichier !?

Si j'ai bien compris ce boitier : il est I2S est fait office d'interface USB ensuite c'est bien ça ? donc compatible avec toutes les cartes faisant de l'I2S ?
Sais-tu si cette interface existe en I2S vers I2S, l'idée étant de l'intercaler entre une relocker I2S et une sortie I2S - HDMI ...

Merci

C'est effectivement assez limité, car il faut faire appel à des "plugins" pré-définis, mais je pense que c'est déjà suffisant dans mon cas (je ne fait pas de "correction" mais juste du "crossover" pour alimenter mes hauts parleurs en bi-amplification).

L'interface XMOS a une entée USB et quatre sorties I2S. La carte est vue par le PC comme disposant donc de plusieurs canaux audio. Quel est le montage que tu envisages ? Tu veux faire juste de la correction ou un simple filtrage pour de la bi (ou tri) amplification ?
Répondre
#4
En fait, il y a énormément de possibilités notamment avec les nouveaux filtres ACDf. Tout est expliqué ici: http://audio.claub.net/software.html

P.S. je decrouve moi-même tout cela. Il y a en certainement d'autres plus experts que moi concernant le filtrage actif.
Répondre
#5
(06-29-2016, 04:18 PM)paulw a écrit : C'est effectivement assez limité, car il faut faire appel à des "plugins" pré-définis, mais je pense que c'est déjà suffisant dans mon cas (je ne fait pas de "correction" mais juste du "crossover" pour alimenter mes hauts parleurs en bi-amplification).

L'interface XMOS a une entée USB et quatre sorties I2S. La carte est vue par le PC comme disposant donc de plusieurs canaux audio. Quel est le montage que tu envisages ? Tu veux faire juste de la correction ou un simple filtrage pour de la bi (ou tri) amplification ?

Je pensais plutôt faire de la correction...j'ai mal compris l'utilisation de ce composant...il est plus orienté : simple filtrage sur la courbe...

Côté montage :
* [Olimex | BeagleBone Black | Raspberry Pi] > I2S > Carte de filtrage que tu proposes > I2S > Relocker > [HDMI I2S Ouput | USB Output]...puis envoyer le signal vers le DAC

hors-sujet ce que tu proposes par rapport à ma compréhension et ce que je pense en faire potentiellement ?
Streamer : Windows Server 2019 & AO 3 & HQPlayer | Aurdirvana -> Diretta
Dac : PS Paul Hynes SR4 -> Chord 2Qute
Casque : Auris HA-2SF -> Focal Clear MG
Démat : Auris HA-2SF -> Atoll IN100 By JCT (Ampli) -> Harbeth LS3/5A 11 Ohms
Vinyle : Thorens TD 295 MK IV & Autio-Technica AT-150MLX




Répondre
#6
Si tu ne fais pas de bi-amplification, la carte en question ne présente pas d'intérêt, car elle est "multi-canal", ce dont tu n'aura pas, à priori, besoin.

Par ailleurs, la carte elle même ne fait pas de "filtrage". Tout doit être fait en amont, donc sur le PC (Olimex | BeagleBone Black | Raspberry Pi). Il y a là (au moins) deux points à prendre en considération, à mon avis:
- la puissance nécessaire pour faire les traitements. A priori, ces cartes seraient suffisantes, mais à voir (je comprends que BruteFIR, par exemple, nécessite plus de puissance de feu que le type de solution que j'ai évoqué ici). Le traitement du signal est un sujet assez complexe - je ne maîtrise vraiment pas.
- les applications que tu va utiliser. J'utilise squeezelite (avec Roon en amont), donc pas de problème pour l'intégrer avec les filtres que tu implémentes dans Alsa, ou avec Ecasound, par exemple. Mais si tu veux utiliser des systèmes clés en main, type Volumio, etc... c'est à vérifier au cas par cas.

Pour le reste, I2S ou USB, tu as pas mal de choix. Sortir de l'I2S directement du PC, je n'ai pas pratiqué. Les solutions à base d'USB sont mainenant très abouties, à mon sens, avec par exemple la carte Singxer F-1 XU208, ou le système Amanero/Hermes/Cronus qui fait de l'isolation+reclocking.

Il faut aussi savoir comment tu veux rentrer le signal dans ton DAC. Là, tout dépends du DAC. J'ai choisi l'I2S car les amplis FDA V200 que j'utilisent sont meilleurs en entrée I2S que SPDIF (ou USB). Mais ce n'est pas toujours possible ou souhaitable. Le fait d'utiliser un branchement I2S n'est pas en soit gage de qualité. Par exemple, sur un autre ampli FDA que j'ai testé (le QA-100, pur ne pas le nommer, l'entrée I2S n'apportait aucun plus par rapport à l'entrée SPDIF ou USB).

J'espère n'avoir pas été trop "hors sujet" par rapport à tes questions.
Répondre
#7
Merci paulw ! Cool

Tu n'est pas du tout hors sujet, bien au contraire c'est plus clair pour moi maintenant.

En effet je compte au niveau player utiliser squeezelite et côté hardware pour la partie I2S utiliser très certainement la solution que tu indiques : Amanero | HDMI I2S / Hermes / Cronus + BeagleBone Black

Concernant BruterFir je n'ai pas pu le mettre en place sur TinySqueeze faute d'avoir réussie à générer les fichiers .bin nécessaire, je ne vois pas la charge CPU possible.
Streamer : Windows Server 2019 & AO 3 & HQPlayer | Aurdirvana -> Diretta
Dac : PS Paul Hynes SR4 -> Chord 2Qute
Casque : Auris HA-2SF -> Focal Clear MG
Démat : Auris HA-2SF -> Atoll IN100 By JCT (Ampli) -> Harbeth LS3/5A 11 Ohms
Vinyle : Thorens TD 295 MK IV & Autio-Technica AT-150MLX




Répondre
#8
Merci Paulw pour ce topic.

Je m'étais toujours posé cette question, tu m'apporte la réponse.
Le filtrage actif m'intéresse pour mon caisson.
Jusqu'à présent j'utilise un pseudo filtrage actif via un equaliseur et mes derniers essais m'ont démontré la pertinence du filtrage actif.

Si on peut se passer de processeurs DSP qui numérisent à leur sauce, c'est un vrai plus.
Reste pour moi le problème du DAC car je n'utilise pas de FDA.
Il me faudrait un DAC multicanal !

Je vais investiguer dans ce sens.

Pascal
Répondre
#9
Il y a également une carte multi-canal disponible pour la RaspberryPi: http://www.pi2design.com/store/p2/502V2S...Sound.html

Elle est en rupture de stock, mais un nouvel arrivage est prévu dans deux semaines.
Répondre
#10
Bonjour,
Ton projet est très intéressent et peu coûteux si l'on possède des FDA.
As tu des infos sur la synchronisation des différents canaux par cette carte?
Je pense que c'est un élément important.
Actuellement je sors en USB de mon PC (carte PCIe SOTM), j'attaque une interface USB SPDIF, puis un DAC, puis un processeur (filtrage actif) puis les amplis FDA (en analogique) et un ampli conventionnel (3 voies mais je peux fonctionner en 2 voies). Donc beaucoup beaucoup de monde.
Cette solution peut elle être mise en œuvre avec DAPHILE? Dont je suis très satisfait.
J'ai vu que l'on peut faire de la correction de courbe en FIR en installant un plug in. Mais peu t'on faire du FIR en crossover?
J'ai vu dans les PA que tu as abandonné le filtrage via un carte NAJDA. Trop complexe? Pas assez qualitatif?
Et également la carte F1 XMOS XU208.
Merci pour tes réponses.
Bruno
Répondre


Sujets apparemment similaires...
Sujet Auteur Réponses Affichages Dernier message
  Carte Mère SOtM - sMB-Q370 pour TARGET DIRETTA jean-luc 117 40,714 01-04-2024, 07:22 AM
Dernier message: Patatorz
  Projet alimentation linéaire carte Engineered E-reddock & Jcat Netcard Femto Fredouille40 6 2,602 12-19-2023, 06:42 PM
Dernier message: Fredouille40
  Adaptateur carte PCIe vers USB A PeterMan 0 887 10-23-2023, 09:37 PM
Dernier message: PeterMan
  Alimentation interne HDPLEX Carte JCAT Net CARD XE jean-luc 2 2,017 08-18-2023, 09:14 PM
Dernier message: fabs35
  Carte PINK FAUN I2S +Horloge OCXO jean-luc 1 1,806 07-16-2023, 11:25 AM
Dernier message: jean-luc

Atteindre :


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