Gehe zu Seite: |vorherige| Erste Letzte

Upsampling durch Windows

+A -A
Autor
Beitrag
contadino
Inventar
#51 erstellt: 13. Nov 2013, 00:31
@robodoc:
Vielen Dank für die Anleitung! Hab die Sache gerade mal etwas durchgespielt --> die schlimmsten Befürchtungen werden wahr...

Als erstes hab ich mal den Beamer an den AVR angeschlossen, um im Menü des AVR zu sehen, was für Signale eigentlich aus dem PC-SPDIF-Anschluß rauskommen. Läßt sich leider nicht direkt am Display anzeigen. Ergebnis:
44, 48 und 96kHz bleiben so wie sie sind.
aus 88,2 , 176,4 und 192kHz werden immer 96kHz gemacht...
--> Danke Realtek!

Als nächstes hab ich dann mit Deiner Befehlszeile MPD neu gestartet und ein flac mit 192kHz abgespielt. Hast nicht zu viel versprochen - kommen wirklich viele Daten, aber ich glaub, ich hab das wesentliche rauskopiert:


playlist: play 1:"pop & rock/Rod Stewart - Gasoline Alley - 24bit-192kHz/07 Lady Day - Rod Stewart.flac"
client: [0] command returned 0
decoder_thread: probing plugin flac
decoder: audio_format=192000:24:2, seekable=true
output: closed plugin=alsa name="HDMI"
alsa_output: opened hw:0,3 type=HW
alsa_output: format=S32_LE (Signed 32 bit Little Endian)
alsa_output: buffer: size=32..8192 time=166..42667
alsa_output: period: size=16..4096 time=83..21334
alsa_output: default period_time = buffer_time/4 = 42666/4 = 10666
alsa_output: buffer_size=8192 period_size=2048
output: opened plugin=alsa name="HDMI" audio_format=192000:32:2
output: converting from 192000:24:2
output: closed plugin=alsa name="SPDIF"
alsa_output: opened hw:0,1 type=HW
alsa_output: format=S32_LE (Signed 32 bit Little Endian)
alsa_output: buffer: size=32..8192 time=333..85334
alsa_output: period: size=16..4096 time=166..42667
alsa_output: default period_time = buffer_time/4 = 85333/4 = 21333
alsa_output: buffer_size=8192 period_size=2048
output: opened plugin=alsa name="SPDIF" audio_format=96000:32:2
output: converting from 192000:24:2
libsamplerate: setting samplerate conversion ratio to 0.50


Zur Erklärung: ich hab ja 2 ALSA-Outputs, HDMI und SPDIF -- deswegen wirds im Log natürlich auch doppelt angezeigt.
Und das Dumme dran - scheinbar wird in beiden Fällen konvertiert... Hätt ich mir jetzt nicht gedacht!

Die entsprechenden Einstellungen sehen bei mir jedenfalls folgendermaßen aus:


audio_output {
type"alsa"
name"HDMI"
device"hw:0,3"# optional
#format"44100:16:2"# optional
#mixer_type "hardware"# optional
#mixer_device"default"# optional
#mixer_control"PCM"# optional
#mixer_index"0"# optional
}
#
audio_output {
type"alsa"
name"SPDIF"
device"hw:0,1"# optional
#format"44100:16:2"# optional
#mixer_type "hardware"# optional
#mixer_device"default"# optional
#mixer_control"PCM"# optional
#mixer_index"0"# optional
}


Eigentlich sollte da genau gar nix konvertiert werden!
robodoc
Hat sich gelöscht
#52 erstellt: 13. Nov 2013, 09:58

contadinus (Beitrag #51) schrieb:
Eigentlich sollte da genau gar nix konvertiert werden! :?


Na ja so einfach ist es dann doch nicht
Würdest du den format Schalter anmechen, würde der alles auf 44.1 umsampeln (vermutlich). Jetzt sampelt er nur, was sonst nicht geht. Um das abzuschalten, probier mal
auto_resample "no"
irgendwo in audio_output {
}

Im Prinzip scheint mir das also alles richtig. Der erste Output "HDMI" bekommt ja auch 192 kHz, da wird nicht umgesampelt. Der zweite kriegt den Faktor 0,5 via libsamplerate weil sonst nix raus käme.
Der libsamplerate ist schon mal gut, Audacity verwendet den auch! Ich glaube ich habe seinerzeit mit SoX rumexperimentiert. Wie man mpd jetzt aber auf SoX loslässt weiß ich aus dem Stand auch nicht mehr.
Der libsamplerate hat aber verschiedene Einstellmöglichkeiten. Da kann man noch optimieren. Oder wenn du, wenn ich das jetzt verstanden habe, eigentlich kein Umsampling willst, kannst du das auch abschalten. Dann hilft die ja auch SoX nicht, weil ja egal ist, was man abschaltet. Ich habe das wohl irgendwo gemacht, erinnere mich aber jetzt nicht mehr an Details, wenn oben das mit auto_resample "no" nicht hilft, müssen wir weitersuchen.

Das gute ist, dass du jetzt optimieren und dabei die Änderungen gut beobachten kannst. Jetzt hat mpd ja tausende Einstellmöglichkeiten, die ich auch nicht kenne. Also lesen:
man mpd.conf

Ich habe gestern abend auch mal rumexperimentiert und eine Möglichkeit gefunden, die Audiosignalparameter direkt auszulesen. Spart den Umweg über die verbosed log. Probier mal, wenn mpd läuft in der Kommandozeile
cat /proc/asound/card0/pcm0p/sub0/hw_params

contadino
Inventar
#53 erstellt: 13. Nov 2013, 11:36
Merci vielmals für die ausführliche Antwort!
Scheinbar kann man also feststellen, daß Alsa erkennt, was für Samplingraten das Ausgabegerät unterstützt und mit Hilfe von libsamplerate in eine passende Samplingrate konvertiert.
Der "Bösewicht" wenn man so will ist also libsamplerate.
Dieser macht seine Sache aber ganz gut, sagst Du, was man am Ergebnis auch hört --> im Vergleich merkt man genau gar keinen Unterschied zwischen HDMI/192kHz und SPDIF/96kHz.

Meine Schlüsse aus der Sache: im Moment paßt es mir ganz gut, da der V-DAC, auf den ausgegeben werden soll, ohnehin "nur" 96kHz verträgt. D.h. momentan machts gar keinen Sinn libsamplerate auszuschalten.

Und der nächste Schritt wird dann wohl sein, daß die Hardware für meinen Medien-PC ausgetauscht wird, wobei ich drauf achten werde, daß der eingebaute Soundchip SÄMTLICHE geforderten Tonformate wiedergeben kann. Muß sagen, daß ich damals, als ich mein aktuelles ION-System besorgte, davon ausgegangen bin, daß es bei SPDIF keine Beschränkungen gibt. Naja - falsch gedacht...
Achja, und der übernächste Schritt ist dann wohl ein entsprechender neuer DAC, beispielsweise ein V-DAC 2, der auch alle Raten empfangen kann. Dann wirds wohl keine Kopfschmerzen mehr wegen Umrechnungen geben und alles geht 1:1 raus.
Ist wirklich fein, wenn man sich selber davon überzeugen kann!
smutbert
Stammgast
#54 erstellt: 13. Nov 2013, 13:19
Bei schönen ganzzahligen Verhältnissen und bei 2:1 oder 1:2 wie 96kHz und 192kHz erst recht läßt sich der Audiostrom auch mit sehr geringem Rechenaufwand sehr gut resampeln. Bei so hohen Sampleraten kann man auch einfach jeden zweiten Wert auslassen, um auf die halbe Samplerate zu kommen, ohne dass sich das irgendwie negativ bemerkbar machen würde (oder in der anderen Richtung jeden Wert doppelt verwenden).

Mit welchem Format die Audiohardware tatsächlich beliefert wird läßt sich auch recht einfach auf der Kommandozeile feststellen. Man findet unter /proc/asound verschiedene Dateien, die Informationen über die ALSA und die Hardware, die es anspricht enthalten.
Hat man dort einmal die richtige Datei namens hw_params (von der es für jeden Ausgabekanal der Soundkarte mindestens eine gibt) für die momentane Audioausgabe gefunden, reicht ein Befehl wie



cat /proc/asound/card0/pcm0p/sub0/hw_params


und man erhält beispielsweise die Ausgabe



access: MMAP_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 96000 (96000/1)
period_size: 4096
buffer_size: 8192


Wenn die Ausgabe dagegen

closed

lautet, findest über diesen Wiedergabe (oder auch Aufnahmekanal) momentan keine Wiedergabe (oder Aufnahme) statt und man muss weiter nach der richtigen hw_params suchen


Geschützter Hinweis (zum Lesen markieren):

Wobei der Pfad zur richtigen hw_params eigentlich relativ selbsterklärend sein sollte:
/proc/asound/card0/pcm0p/sub0/hw_params

Es gilt den unterstrichenen Teil anzupassen, zuerst die Nummer der Soundkarte, dann gewissermaßen welcher Anschluss, wobei pcmxp für Wiedergabe und pcmxc für Aufnahmekanäle steht und danach in den meisten Fällen das sub0. Etwas anderes als sub0 gibt es nur bei Soundkarten die Hardwaremixing beherrschen und bei denen selbiges auch von den Alsatreibern unterstützt wird und schon das erste ist heute bei fast keiner Soundkarte mehr gegeben (früher einmal, wo es darauf ankam, dass die Soundkarte den Prozessor möglichst viel Arbeit abnimmt, war das noch ein Thema).


[Beitrag von smutbert am 13. Nov 2013, 13:27 bearbeitet]
cr
Inventar
#55 erstellt: 13. Nov 2013, 16:41
Jeden Wert doppelt verwenden dürfte ein schlechteres Ergebnis bringen als das Original.
Zumindest eine lineare Interpolation wäre anzuraten. Ist ja auch kein Aufwand.
robodoc
Hat sich gelöscht
#56 erstellt: 13. Nov 2013, 18:17

cr (Beitrag #55) schrieb:
Jeden Wert doppelt verwenden dürfte ein schlechteres Ergebnis bringen als das Original.

Deswegen ist Hochsampeln ja auch Unsinn. In die andere Richtrung geht das schon. Macht libsamplerate ja auch so, hier von 192 auf 96.
smutbert
Stammgast
#57 erstellt: 13. Nov 2013, 18:52
Ok, das war etwas zu sehr vereinfacht. Eigentlich meine ich ja auch nur, dass resampeln im Verhältnis 2:1 oder 1:2 harmlos ist. Der Meinung, dass Hochsampeln tendentiell eher sinnlos bin ich sowieso.
Suche:
Gehe zu Seite: |vorherige| Erste Letzte
Das könnte Dich auch interessieren:
cmp² AD Wandler 192khz nötig?
derdort am 26.02.2010  –  Letzte Antwort am 28.02.2010  –  38 Beiträge
Exzellenter D/A-Wandler für HiFi und PC
Paesc am 13.07.2007  –  Letzte Antwort am 16.07.2007  –  4 Beiträge
Knacken / Rauschen bei USB zu D/A Wandler (Audiolab 8200 CD)
babo91 am 12.03.2015  –  Letzte Antwort am 23.04.2016  –  4 Beiträge
DA-Wandler mit PC vs CD Player
theabstract am 25.12.2010  –  Letzte Antwort am 26.12.2010  –  24 Beiträge
PC Onboard Soundkarte umgehen und einen HiFi-Verstärker stattdessen benutzen?
PixelProfi am 13.11.2016  –  Letzte Antwort am 04.12.2016  –  22 Beiträge
Server/PC statt CD-Laufwerk?
acousticsguru am 13.09.2007  –  Letzte Antwort am 17.09.2007  –  26 Beiträge
PC an Hifi-Anlage durch externen A/D Wandler
um1 am 14.11.2011  –  Letzte Antwort am 16.11.2011  –  7 Beiträge
CD Rolinge CD Brenner MP3 To Wave
Merkur am 17.11.2004  –  Letzte Antwort am 19.11.2004  –  4 Beiträge
PC mit Musical Fidelity V-DAC II USB, Upsampling
wschmied am 09.08.2013  –  Letzte Antwort am 10.08.2013  –  3 Beiträge
Anlage erkennt PC nicht mehr wirklich
ledoq am 05.09.2005  –  Letzte Antwort am 06.09.2005  –  6 Beiträge

Anzeige

Aktuelle Aktion

Partner Widget schließen

  • beyerdynamic Logo
  • DALI Logo
  • SAMSUNG Logo
  • TCL Logo

Forumsstatistik Widget schließen

  • Registrierte Mitglieder928.390 ( Heute: 2 )
  • Neuestes MitgliedStevenzgeado
  • Gesamtzahl an Themen1.558.101
  • Gesamtzahl an Beiträgen21.694.407

Hersteller in diesem Thread Widget schließen