Raspberry Pi Streamer

Fujak
Moderator
Beiträge: 5752
Registriert: 05.05.2009, 21:00
Wohnort: Bayern
Kontaktdaten:

Beitrag von Fujak »

Hallo zusammen,

die letzten 8 Beiträge der vergangenen Tage, in denen es um die Implementierung mehrkanaliger Audioausgabe geht, hatte ich am 26.01.2017 entfernt und ins Archiv verschoben, da sie beim ersten Lesen den Eindruck erweckten, dass hier auf nicht legale Weise der HDMI eigene Kopierschutz umgangen werden sollte.

Klaus (Sire) hatte mich allerdings darauf aufmerksam gemacht, dass es hier nicht um kopiergeschützte Inhalte geht, die ausgehebelt werden sollten, sondern um digitale Signale, die vom Kopierschutz nicht betroffen sind. Ein nicht verschlüsseltes Signal kann auch wieder unverschlüsselt ausgegeben werden, ohne dass der interne HDCP-Kopierschutz davon berührt wird. Also ein Fehlalarm meinerseits, den ich zu entschuldigen bitte.

Ich habe die entsprechenden Beiträge wieder in den Thread gestellt und hoffe, dass die Diskussion zum Thema Mehrkanalfähigkeit des Raspberry PI weitergeht.

Grüße
Fujak
Bild
Sire
Aktiver Hörer
Beiträge: 309
Registriert: 02.12.2013, 14:01

Beitrag von Sire »

Danke Fujak, dass Du die Beiträge wieder hier im Thread eingefügt hast.

Hallo zusammen,

Um es nochmal hier kurz zusammen zu fassen: Mehrkanal-PCM ist auf dem Raspberry per HDMI möglich. Diese Funktionalität ist aber in den aktuellen Kernel-Versionen nicht enthalten, da es zum Problemen mit verschiedenen Audio-Anwendungen gekommen war. Wer es nutzen möchte, um z.b. eine Aktivweiche zu realisieren, der kann sich einen eigenen Kernel kompilieren. Welche Anpassungen da erforderlich sind, habe ich hier zwei drei Beiträge vorher schon geschrieben.
Ich selber nutze es in dieser Weise. Wer Interesse hat, der sei auch auf die ausgezeichnete Anleitung von "Alchemist" hingewiesen, die hier zu finden ist.

Viele Grüße Klaus
Bild
Pittiplatsch
Aktiver Hörer
Beiträge: 489
Registriert: 26.02.2012, 10:48

Beitrag von Pittiplatsch »

Hallo @all,

Mein Problem mit den PIs ist dass sobald ich mir einen zum Basteln hole - schwups hat er seinen festen Einsatzzweck :).
ich habe jetzt tatsaechlich auch brutefir zum Laufen gekriegt auf meinem neuen PI3 (dank der vielen super Beispiele hier im Forum ). Zunaechst nur mit einer default-config ohne Raumkorrektur, aber immerhin. In Raspbian geht das mittlerweile narrensicher, da man das Loopback device sogar im UI auswaehlen kann. CPU load ist marginal - mal sehen wie es sich verhaelt wenn ich die DRC-filer einhaenge.

Raspbian ist fuer mich ideal als Spielwiese und per VNC geht alles super vom "normalen" PC ohne Monitor und Tastaturumgestecke.
Wenn das alles laeuft wie ich mir das vorstelle wuerde ich mal versuchen es auf OSMC zum Laufen zu kriegen, weil OSMC mir von der Bedienbarkeit ueber die Kodi-App am Besten gefaellt. Ziel ist dann ein kleiner Player mit DRC und eigener Festplatte fuers Wohnzimmer.

Viele Gruesse,
Tobias
Bild
Pittiplatsch
Aktiver Hörer
Beiträge: 489
Registriert: 26.02.2012, 10:48

Beitrag von Pittiplatsch »

so, jetzt laeuft der PI mit OSMC und brutefir! Das gute an OSMC its das sehr schlanke image und der scheinbar gut gepfleget Debian upstream - alles was mam braucht ist da. Die Alsa-loop wird auch sofort als Ausgabegeraet angeboten. Per Kodi-App auch eine sehr schoen fernbedienbare Loesung, aber auch das Web-interface ist recht schick.
Einzig mein Ziel den PI zum playback und fuer die Raumkorrektur-messung einzusetzen scheint wohl an den PI USB-Audio Limitationen zu scheitern. Man braucht also einen separaten Laptop zum Messen und Filter erstellen. Ich bau gerade ein paar kleine scripts und UI-Integration fuer den Mess-Rechner - Filter transfer. Ich bastel ja auch gerne, aber am Ende soll es bitteschoen automatisiert laufen :).

Um mal die Gegenrechung zu machen (grosszuegig aufgerundet) :

Wiedergabe:

Pi3 : 40 Euro
Netzteil : 10 Euro
SSD: 100 Euro
micro SD: 10 Euro
USB-SSD Adapter: 10 Euro
Hifiberry DAC+: 40 Euro
Cordial Cynch - XLR Adapter: 15 Euro
Neumann KH120A: 1200 Euro

zusaetzlich fuer Audiomessungen und Raumkorrektur:

kalibriertes Messmikro: 40 Euro
Cordial Mikrokabel: 15 Euro
Separater Mess-Laptop (Linux): 400 Euro
USB-Audio-Interface: 130 Euro

D.h. mit ca 2000 Euro Investment bekommt man eine Anlage inklusive Raumkorrektur mit der man schon auf recht hohem Niveau hoeren kann (all inklusive) wobei LS und Mess-rechner noch bei weitem den Hauptanteil ausmachen. Passt aber nach meinem Empfinden von Kosten-Nutzen-Verhaeltnis ganz gut.

Viele Gruesse,
Tobias
Bild
Buschel
Aktiver Hörer
Beiträge: 989
Registriert: 12.12.2013, 20:12
Wohnort: Raum Karlsruhe

Beitrag von Buschel »

Hallo Tobias,

OSMC kannte ich noch gar nicht. Das Setup ist sehr ähnlich zu meinem hier (Linux, brutefir, kodi, aloop, kodi-remote app). Die kodi-remote Lösung gefällt mir ziemlich gut und auch besser als Kazoo, BubbleUpnp oder Lumin. Einziges Problem hier sind die sporadisch nach Start auftretenden dropouts, wenn ich die aloop verwende. Bisher habe ich das nicht in den Griff bekommen. Kannst ja mal berichten, ob das bei dir auch auftritt...

Weiterhin viel Erfolg,
Andree
Bild
freezebox
Aktiver Hörer
Beiträge: 576
Registriert: 08.07.2011, 11:42
Wohnort: München

Beitrag von freezebox »

Über das (gratis) Aroio image hast Du mit einem UMIK-1 Messmikro auch ein Einmesssystem über den Pi mit an Bord. Du benötigst noch eine Acourate (cv) Lizenz zur Filtererstellung und ich würde in einen besseren DAC HAT investieren. Ist Idiotensicher (besonders für Linux-Laien wie mich), klingt spitze und vom Preis/Leistungsverhältnis gibts für mich nix besseres.

Grüße,
Jörn
Bild
Pittiplatsch
Aktiver Hörer
Beiträge: 489
Registriert: 26.02.2012, 10:48

Beitrag von Pittiplatsch »

Hallo Jörn,

Aroio sieht wirklich sehr interessant aus: alles an Board und trotzdem scheinbar alle Vorteile eines offenen Systems - eine sehr sympatische Loesung. Ich werde mir das image auf alle Faelle mal anschauen. Dank PI geht so ein Test ja recht fix: neue micro SD bespielt und reingesteckt und los gehts. Das ich mir Acourate mal anschaue ist ja eh ueberfaellig :).

Viele Gruesse,
Tobias
Bild
Pittiplatsch
Aktiver Hörer
Beiträge: 489
Registriert: 26.02.2012, 10:48

Beitrag von Pittiplatsch »

Hallo Andree,
Bisher habe ich das nicht in den Griff bekommen. Kannst ja mal berichten, ob das bei dir auch auftritt...
bisher kein einziger dropout in beiden RASPI-setups. Ich missbrauche den RPI2 ja mir raspbian zum surfen, online falten und Musikhoeren. Der Webbrowser pruegelt die CPU load teilweise ganz schoen nach oben, aber brutefir laeuft stabil... Unter OSMC dreht der RASPI3 ja nur Daeumchen - kein dropout nach einem Nachmittag hoeren.
Beim Ubuntu PC-Platz kann ich es nicht sagen - dafuer bin ich da zu selten... Dort werde ich brutefir wohl rausschmeissen. Wenn ich dort mal mit meinen KIndern Computerspiele ist die Latenz von einigen Sekunden schon ein lustiger Effekt. Dort hat meine Faltung begrenzt auf Rhythmbox ueber gstreamer schon ihren Sinn.

Viele Gruesse,
Tobias
Bild
Tinitus
Aktiver Hörer
Beiträge: 1322
Registriert: 10.11.2013, 21:48

Beitrag von Tinitus »

Hallo,

Filter habe ich nun erstellt und auch schon mit Hilfe von Daphile geprüft. Nun würde ich diese gerne in brutefir einbinden. Ich habe auch schon einige Internetquellen studiert, aber so ganz schlau bin ich daraus nicht geworden. Liegt vielleicht daran, dass die meisten Beispiele, die ich gefunden habe, nicht nur falten (wenn überhaupt) sondern digitale Frequenzweichen sind und damit böhmische Dörfer für mich.

Ich zitiere mich mal, so sieht meine brutefir_config aus:

Code: Alles auswählen

    float_bits: 32;             # internal floating point precision
    sampling_rate: 96000;       # sampling rate in Hz of audio interfaces
    filter_length: 4096,16;       # length of filters
    overflow_warnings: true;    # echo warnings to stderr if overflow occurs
    show_progress: true;        # echo filtering progress to stderr
    max_dither_table_size: 0;   # maximum size in bytes of precalculated dither
    allow_poll_mode: false;     # allow use of input poll mode
    modules_path: ".";          # extra path where to find BruteFIR modules
    monitor_rate: false;        # monitor sample rate
    convolver_config: "~/.brutefir_convolver"; # location of convolver config file

    logic: "cli" { port: 3000; };


    ## INPUT OUTPUT ##

    input "left-in", "right-in" {
            device: "file" {path: "/dev/stdin";};
            sample: "S32_LE";
            channels: 2/0,1;
    };

    output "left-out", "right-out" {
            device: "alsa" {device: "hw:1";  ignore_xrun: true;};
            #device: "file" {path:"/dev/stdout"; };
            sample: "S32_LE"; 
            channels: 2/0,1;
            dither: false;   
    };
    ## FILTER DEFAULTS ##

    filter "l_filter" {
          from_inputs: "left-in"/2.0;
          to_outputs: "left-out"/0.0;
          process: 0;        # process index to run in (-1 means auto)
          coeff: -1;          # -1 means "copy"
          delay: 0;           # predelay, in blocks
          crossfade: false;   # crossfade when coefficient is changed
    };

    filter "r_filter" {
          from_inputs: "right-in"/2.0;
          to_outputs: "right-out"/0.0;
          process: 0;        # process index to run in (-1 means auto)
          coeff: -1;
          delay: 0;           # predelay, in blocks
          crossfade: false;   # crossfade when coefficient is changed
    };
So sieht meine brutefir_config datei zur Zeit aus

Würde das zum Einbinden der Filter funktionieren?:

Code: Alles auswählen

    float_bits: 32;             # internal floating point precision
    sampling_rate: 96000;       # sampling rate in Hz of audio interfaces
    filter_length: 4096,16;       # length of filters
    overflow_warnings: true;    # echo warnings to stderr if overflow occurs
    show_progress: true;        # echo filtering progress to stderr
    max_dither_table_size: 0;   # maximum size in bytes of precalculated dither
    allow_poll_mode: false;     # allow use of input poll mode
    modules_path: ".";          # extra path where to find BruteFIR modules
    monitor_rate: false;        # monitor sample rate
    convolver_config: "~/.brutefir_convolver"; # location of convolver config file

    logic: "cli" { port: 3000; };

    ## COEFFICIENTS ##

     coeff "linker_kanal" {
               filename: "/home/filter/Dateiname_filter.dbl"; # .dbl? Trotz Google hab ich nicht verstanden, was das für ein Format ist, auf der brutefir Seite seht .txt also eine Text Datei?
               format: "FLOAT_LE";     
               attenuation: 2.5;  # mein jetziges Filter übersteuert ein wenig ich schwäche um 2,5 dB ab
};


     coeff "rechter_kanal" {
               filename: "/home/filter/Dateiname_filter.dbl"; # .dbl? Trotz Google hab ich nicht verstanden, was das für ein Format ist, auf der brutefir Seite seht .txt also eine Text Datei?
               format: "FLOAT_LE";     
               attenuation: 2.5;  # mein jetziges Filter übersteuert ein wenig ich schwäche um 2,5 dB ab
};


    ## INPUT OUTPUT ##

    input "left-in", "right-in" {
            device: "file" {path: "/dev/stdin";};
            sample: "S32_LE";
            channels: 2/0,1;
    };

    output "left-out", "right-out" {
            device: "alsa" {device: "hw:1";  ignore_xrun: true;};
            #device: "file" {path:"/dev/stdout"; };
            sample: "S32_LE"; 
            channels: 2/0,1;
            dither: false;   
    };
    ## FILTER DEFAULTS ##

    filter "l_filter" {
          from_inputs: "left-in";
          to_outputs: "left-out";
          process: 0;        # process index to run in (-1 means auto)
         [b] coeff: "linker_kanal"; [/b]         
          delay: 0;           # predelay, in blocks
          crossfade: false;   # crossfade when coefficient is changed
    };

    filter "r_filter" {
          from_inputs: "right-in";
          to_outputs: "right-out";
          process: 0;        # process index to run in (-1 means auto)
          [b]coeff: "rechter_kanal";[/b]
          delay: 0;           # predelay, in blocks
          crossfade: false;   # crossfade when coefficient is changed
    };
Jetzt habe ich meine Filter mühselig ins .wav Format gebracht und jetzt soll ich sie in Text umwandeln? Wenn ja, wie?

Oder geht das auch:

Code: Alles auswählen

 float_bits: 32;             # internal floating point precision
    sampling_rate: 96000;       # sampling rate in Hz of audio interfaces
    filter_length: 4096,16;       # length of filters
    overflow_warnings: true;    # echo warnings to stderr if overflow occurs
    show_progress: true;        # echo filtering progress to stderr
    max_dither_table_size: 0;   # maximum size in bytes of precalculated dither
    allow_poll_mode: false;     # allow use of input poll mode
    modules_path: ".";          # extra path where to find BruteFIR modules
    monitor_rate: false;        # monitor sample rate
    convolver_config: "~/.brutefir_convolver"; # location of convolver config file

    logic: "cli" { port: 3000; };

    ## COEFFICIENTS ##

     coeff "linker_kanal" {
               filename: "/home/filter/Dateiname_filter.wav";
               format: "FLOAT_LE" | "wave";  # oder "wav"?   
               attenuation: 2.5;  # mein jetziges Filter übersteuert ein wenig ich schwäche um 2,5 dB ab
};


     coeff "rechter_kanal" {
               filename: "/home/filter/Dateiname_filter.wav";
               format: "FLOAT_LE"; | "wave"; # oder "wav"?  
               [b]attenuation: 2.5;  # mein jetziges Filter übersteuert ein wenig ich schwäche um 2,5 dB ab
};


    ## INPUT OUTPUT ##

    input "left-in", "right-in" {
            device: "file" {path: "/dev/stdin";};
            sample: "S32_LE";
            channels: 2/0,1;
    };

    output "left-out", "right-out" {
            device: "alsa" {device: "hw:1";  ignore_xrun: true;};
            #device: "file" {path:"/dev/stdout"; };
            sample: "S32_LE"; 
            channels: 2/0,1;
            dither: false;   
    };
    ## FILTER DEFAULTS ##

    filter "l_filter" {
          from_inputs: "left-in";
          to_outputs: "left-out";
          process: 0;        # process index to run in (-1 means auto)
         [b] coeff: "linker_kanal"; [/b]         
          delay: 0;           # predelay, in blocks
          crossfade: false;   # crossfade when coefficient is changed
    };

    filter "r_filter" {
          from_inputs: "right-in";
          to_outputs: "right-out";
          process: 0;        # process index to run in (-1 means auto)
          [b]coeff: "rechter_kanal";[/b]
          delay: 0;           # predelay, in blocks
          crossfade: false;   # crossfade when coefficient is changed
    };
Wenn ich es richtig verstanden habe weist die Zahl hinter "process:" in den FILTER DEFAULTS" dem Filter einen Prozessor zu. Da mein C1 ein Vier-Kern rechner ist, könnte ich den einen Filter auf dem 1. Kern (process: 0;) und den anderen auf dem zweiten Kern (process: 1;) laufen lassen? Das sähe dann so aus:

Code: Alles auswählen

    float_bits: 32;             # internal floating point precision
    sampling_rate: 96000;       # sampling rate in Hz of audio interfaces
    filter_length: 4096,16;       # length of filters
    overflow_warnings: true;    # echo warnings to stderr if overflow occurs
    show_progress: true;        # echo filtering progress to stderr
    max_dither_table_size: 0;   # maximum size in bytes of precalculated dither
    allow_poll_mode: false;     # allow use of input poll mode
    modules_path: ".";          # extra path where to find BruteFIR modules
    monitor_rate: false;        # monitor sample rate
    convolver_config: "~/.brutefir_convolver"; # location of convolver config file

    logic: "cli" { port: 3000; };

    ## COEFFICIENTS ##

     coeff "linker_kanal" {
               filename: "/home/filter/Dateiname_filter.wav";
               format: "FLOAT_LE" | "wave";  # oder "wav"?   
               attenuation: 2.5;  # mein jetziges Filter übersteuert ein wenig ich schwäche um 2,5 dB ab
};


     coeff "rechter_kanal" {
               filename: "/home/filter/Dateiname_filter.wav";
               format: "FLOAT_LE"; | "wave"; # oder "wav"?  
               attenuation: 2.5;  # mein jetziges Filter übersteuert ein wenig ich schwäche um 2,5 dB ab
};


    ## INPUT OUTPUT ##

    input "left-in", "right-in" {
            device: "file" {path: "/dev/stdin";};
            sample: "S32_LE";
            channels: 2/0,1;
    };

    output "left-out", "right-out" {
            device: "alsa" {device: "hw:1";  ignore_xrun: true;};
            #device: "file" {path:"/dev/stdout"; };
            sample: "S32_LE"; 
            channels: 2/0,1;
            dither: false;   
    };
    ## FILTER DEFAULTS ##

    filter "l_filter" {
          from_inputs: "left-in";
          to_outputs: "left-out";
          process: 0;        # process index to run in (-1 means auto)
         [b] coeff: "linker_kanal"; [/b]         
          delay: 0;           # predelay, in blocks
          crossfade: false;   # crossfade when coefficient is changed
    };

    filter "r_filter" {
          from_inputs: "right-in";
          to_outputs: "right-out";
          process: 1;        # process index to run in (-1 means auto)
          [b]coeff: "rechter_kanal";[/b]
          delay: 0;           # predelay, in blocks
          crossfade: false;   # crossfade when coefficient is changed
    };
Oder wäre die Angabe -1 in beiden Fällen (die Aufgaben werden automatisch verteilt) die bessere Lösung?

Noch eine Frage hätte ich, was hat die Angabe filter_length: 4096,16; zu bedeuten? 4096 sind tabs? Ist das die Anzahl der Stützstellen? Was bedeutet die 16?

Vielen Dank für Eure Kommentare

Gruß

Uwe
Bild
frankl
Aktiver Hörer
Beiträge: 486
Registriert: 20.01.2013, 01:43
Wohnort: Aachen

Beitrag von frankl »

Tinitus hat geschrieben:

Code: Alles auswählen

    ## COEFFICIENTS ##

     coeff "linker_kanal" {
               filename: "/home/filter/Dateiname_filter.dbl"; # .dbl? Trotz Google hab ich nicht verstanden, was das für ein Format ist, auf der brutefir Seite seht .txt also eine Text Datei?
               format: "FLOAT_LE";     
               attenuation: 2.5;  # mein jetziges Filter übersteuert ein wenig ich schwäche um 2,5 dB ab
};

[...]
          coeff: "linker_kanal";        
Jetzt habe ich meine Filter mühselig ins .wav Format gebracht und jetzt soll ich sie in Text umwandeln? Wenn ja, wie?
Hallo Uwe,
die Zeile ' format: "FLOAT_LE"; ' sagt, dass die Filterdatei im raw-Format mit 32-bit floating point samples ist.
Wenn Du den Filter für den linken Kanal in einer Mono-wav Datei hast, kannst Du das so umwandeln:

Code: Alles auswählen

sox linksfilter.wav -t raw -e floating-point -b 32 linksfilter.pcm
Und entsprechend für den rechten Kanal.
Falls Du die Filter für links und rechts in einer gemeinsamen Stereo-wav Datei hast, dann geht es so:

Code: Alles auswählen

sox stereofilter.wav -t raw -e floating-point -b 32 linksfilter.pcm remix 1
sox stereofilter.wav -t raw -e floating-point -b 32 rechtsfilter.pcm remix 2
Die Verwendung dieses Filters ist dann richtig so wie oben gezeigt.
(Die Endung .dbl deutet üblicherweise auf eine raw-Datei mit 64-Bit Samples hin.)
Tinitus hat geschrieben:
Wenn ich es richtig verstanden habe weist die Zahl hinter "process:" in den FILTER DEFAULTS" dem Filter einen Prozessor zu. Da mein C1 ein Vier-Kern rechner ist, könnte ich den einen Filter auf dem 1. Kern (process: 0;) und den anderen auf dem zweiten Kern (process: 1;) laufen lassen? Das sähe dann so aus:

Oder wäre die Angabe -1 in beiden Fällen (die Aufgaben werden automatisch verteilt) die bessere Lösung?
process: würde ich erstmal bei -1 belassen. Normalerweise weiß in dem Punkt das Betriebssystem am besten, was gut ist. Du kannst eventuell damit später mal zum Feintuning rumspielen; es ist gut möglich, dass es besser ist, alles auf einem Core laufen zu lassen.
Tinitus hat geschrieben: Noch eine Frage hätte ich, was hat die Angabe filter_length: 4096,16; zu bedeuten? 4096 sind tabs? Ist das die Anzahl der Stützstellen? Was bedeutet die 16?
Das Produkt aus dem beiden Zahlen, also hier 16*4096=65536 ist die Anzahl der Samples im Filter (=Tabs). (4 Mal so groß in Bytes sollte dann die Filterdatei sein.) Die Faktoren haben Einfluss auf den verwendeten Algorithmus, bei 8*8192 wäre das Delay zu Anfang etwas höher. Ich würde es erstmal so lassen (falls das Produkt Deiner Filterlänge entspricht).

Viele Grüße,
Frank
Bild
Tinitus
Aktiver Hörer
Beiträge: 1322
Registriert: 10.11.2013, 21:48

Beitrag von Tinitus »

Hallo Frank,

recht herzlichen Dank für die Nachhilfe. Mit anderen Worten, man braucht gar keine .wav Filterdatei für brutefir, das ist dann sogar noch einfacher. Ich erzeuge zwar mit DRCDesigner einen .wav Stereofilter, aber DRCDesigner legt auch je .wav Stereofilter zwei .bat Dateien an, die, wenn man sie aufruft, automatisch (links und rechts) für einen Kanal einen .pcm Filter erzeugen.
Wenn ich es richtig verstanden habe, sind diese .pcm Dateien ein raw Format und ich kann diese in brutefir einbinden. Die .pcm Dateien sind 524288 bytes groß. Das sind 8x65536, demnach müsste ich als Format entweder :

Code: Alles auswählen

filter_length: 8192,16;
oder

Code: Alles auswählen

filter_length: 4096,32;
angeben. Ist eine der beiden Möglichkeiten vorteilhafter als die andere? Rein von der Rechenkapazität des Odroid C1 sollte das machbar sein mit einem Filter mit 131072 Samples zu arbeiten, oder?
So manch einer faltet ja mehr als zwei Kanäle mit Filtern mit 65536 Samples.
Die Zuordnung der Filter zu den Kernen des C1 werde ich dann erstmal auf -1 setzen und damit dem Betriebssystem überlassen.

Viele Grüße

Uwe
Bild
Tinitus
Aktiver Hörer
Beiträge: 1322
Registriert: 10.11.2013, 21:48

Beitrag von Tinitus »

Hallo,

ich habe mich dann für:

Code: Alles auswählen

filter_length: 8192, 16;
entschieden.

Bild

:D :D :D :D :D :D :D :D :D :D :D :D :D :D

Besonderen Dank an Frank (frankl), Tobias (Pittiplatsch), Andree (Buschel) und last but not least Klaus (Sire)

Gruß

Uwe
Bild
steklo
Aktiver Hörer
Beiträge: 102
Registriert: 08.07.2015, 15:52

Beitrag von steklo »

Hallo,

ich plane derzeit einen auf Raspberry Pi 3 basierten Audio Streamer mit Linearnetzteil, in der finalen Version alles in einem Gehäuse wie von Jörg in der ersten Posting gezeigt.

Neben dem Raspi habe ich bereits das Pi2Design 502DAC - Pro Audio Shield mit einem SPDIF-Ausgang. Beides – Raspi und P2D502 – will ich separat mit möglichst sauberen 5V versorgen. Ein heißer Tip scheint hier das Thel Black Pulsar Class A Shunt PSU Modul zu sein, welches passenderweise gleich zwei getrennte Ausgangsspannungen zur Verfügung stellt. Dazu brauche ich dann eigentlich im Wesentlichen nur noch einen passenden Netz-Trafo. Und genau da möchte ich gerne mal in die Runde fragen: Was empfehlen da die Experten?

Thel selbst bietet ja Ringkerntrafos an:
http://www.thel-audioworld.de/bauteile/ ... fos.htm#NT
Von diesen würde der NT-LN 50.12 - 3 in Frage kommen.

Der Tipgeber, der mir das BlackPulsar Netzteil ans Herz gelegt hat, hatte zunächst einen R-Core-Trafo von selectronic.fr ausprobiert, der aber gebrummt hat. Seitdem hat er einen Ringkerntrafo von toroidy.pl im Einsatz, die eine Audio Grade und eine Supreme Audio Grade Linie haben, letztere zusätzlich voll vergossen und mit Stahlschirmung, ansonsten identisch:
https://sklep.toroidy.pl/en_US/c/Toroid ... _ov_8_23/1
https://sklep.toroidy.pl/en_US/c/Toroid ... _ov_8_23/1

Hier im Forum werden ja in letzter Zeit Netzteile mit R-Core-Trafos bevorzugt und auch Magna HiFi setzt bei seinem Mano Music Streamer auf R-Core mit der Begründung, dass man mit diesen Trafos ein besseres Signal-Rausch-Verhalten habe.
Da Überdimensionerung im Audio Bereich ja immer gerne gesehen ist (das bezeichnet Paul Hynes ausdrücklich als einen Schlüssel-Faktor im Hinblick auf die Qualität seiner Netzteile), habe ich diesen Zerozone R-Core mit 100VA ins Auge gefasst (den gibt es auf Anfrage auch mit 2 Sekundärwicklungen für 2 x 9V bei jeweils 5,5A):
http://www.ebay.de/itm/322065179563?ul_noapp=true

Macht es eigentlich Sinn, statt EINEM Netztrafo mit 2 Sekundärwicklungen gleich ZWEI komplett separate Trafos für die beiden Ausgangsspannungen zu nehmen? Von den Zerozone R-Cores gibt es auch entsprechende 50VA Versionen, von denen zwei zusammen nicht viel teurer sind als der einzelne 100VA Trafo mit zweifach Sekundärwicklung.

Viele Grüße
Stefan
Bild
Hans-Martin
Aktiver Hörer
Beiträge: 9118
Registriert: 14.06.2009, 15:45

Beitrag von Hans-Martin »

Hallo Stefan,
ich bin kein großer Freund von RKTs für Digital, aber mit der Schirmfolienwicklung (die wohl herausgeführt ist, das wäre Voraussetzung) wird es besser.
Additional magnetic screening and the electric monitor of coated SYN-SHIELD copper tape between windings make the class AUDIO transformers one of the frontrunners in the area of safe use in the systems of electronic power supply.
Ausphasen ist immer angesagt, besonders wenn Primär - und Sekundärwicklungen übereinanderliegen. Das ist bei R-Core ebenso der Fall, und deshalb würde ich auf die Schirmwicklung besonderen Wert legen.
Grüße Hans-Martin
Bild
tovow
Aktiver Hörer
Beiträge: 220
Registriert: 16.06.2012, 22:32
Wohnort: Rheingau

Beitrag von tovow »

Hallo,

bin Heute morgen beim Stöbern nach I2S Verbindungen auf eine
Interessante Seite gestoßen, die mal verschiedene
linear-power-supply-and-switchedmode-power-supply verglichen haben.
http://www.audiocircle.com/index.php?topic=149059.0

Ist schon Informativ und Jeder muss selbst entscheiden was er davon hält und wie viel
er in die Stromversorgung investiert.

Beste Grüße
Theo

PS. Das Thel Black Pulsar Class A Shunt PSU Modul ist nur Für Audiomodule bis max. 500mA ausgelegt!!
Das wird knapp nur für den RPI alleine. :wink:
Bild
Antworten