Ήθελα να κάνω μια αναφορά στο πως μπορούμε να δούμε περισσότερες πληροφορίες αναφορικά με το τι συμβαίνει ακριβώς με το resampling κλπ.
Ο καλύτερος τρόπος είναι να κάνουμε ένα edit στο mpd.conf και να επιλέξουμε verbose logging.
Στη συνέχεια, αφού κάνουμε restart τον mpd, μπορούμε να βάλουμε σε ένα terminal να βλέπουμε realtime το log file του mpd.
Το ποιο ακριβώς εiναι το log file μπορούμε να το δούμε από το mpd.conf. Στην περίπτωση του Archphile, αυτό το επιτυγχάνουμε με την εντολή:
Φορτώνουμε λοιπόν ένα αρχείο 16/44.1 και πατάμε play. Στη δική μου περίπτωση και χωρίς resampling, το log που παίρνω είναι το εξής:
Αυτό που βλέπουμε εδώ είναι ότι το μόνο conversion που γίνεται είναι από 16/44.1 σε 32/44.1 ώστε να μπορεί να αναπαράξει το 32μπιτο dac μου.
Η αλήθεια είναι ότι αγνοώ τη μεθοδολογία με την οποία γίνεται η μετατροπή αυτή.
Πάμε τώρα να δούμε τι γίνεται όταν ανοίξουμε όλα τα απαραίτητα στον mpd.conf για χρήση sox και quality very high. Η επιθυμητή δειγματοληψία resampling είναι 32/352.8:
Εδώ λοιπόν επιβεβαιώνουμε εότι χρησιμοποιούμε τον sox για resampling. Επίσης βλέπουμε ότι η μετατροπή που γίνεται είναι από 16/44.1 σε 32/352.8. Επίσης αν θυμάμαι σωστά το double-precision αντιστοιχεί στο "very high" quality που έχουμε ορίσει.
Για την ιστορία, τις παραπάνω δοκιμές τις κάνω στο odroid c2, με καρφωμένο τον mpd και τα threads του σε isolated core και για τη μετατροπή από redbook σε 32/352.8 με την max ποιότητα του sox αυτό το ένα core απαιτεί max 30% χρήσης.
Κάτι τελευταίο που θέλω να αναφέρω είναι ότι δυστυχώς το resampling επηρρεάζει και τη λειτουργία DoP. Με χρήση του sox, σταματάμε να έχουμε dop και παίζουμε τα dsd στα 352.8.
Ο καλύτερος τρόπος είναι να κάνουμε ένα edit στο mpd.conf και να επιλέξουμε verbose logging.
Στη συνέχεια, αφού κάνουμε restart τον mpd, μπορούμε να βάλουμε σε ένα terminal να βλέπουμε realtime το log file του mpd.
Το ποιο ακριβώς εiναι το log file μπορούμε να το δούμε από το mpd.conf. Στην περίπτωση του Archphile, αυτό το επιτυγχάνουμε με την εντολή:
Code:
tail -f /var/log/mpd.log
Φορτώνουμε λοιπόν ένα αρχείο 16/44.1 και πατάμε play. Στη δική μου περίπτωση και χωρίς resampling, το log που παίρνω είναι το εξής:
Code:
Mar 31 14:13 : alsa_output: opened hw:1,0 type=HW
Mar 31 14:13 : alsa_output: buffer: size=16..131072 time=362..2972155
Mar 31 14:13 : alsa_output: period: size=8..65536 time=181..1486078
Mar 31 14:13 : alsa_output: default period_time = buffer_time/4 = 500000/4 = 125000
Mar 31 14:13 : alsa_output: format=S32_LE (Signed 32 bit Little Endian)
Mar 31 14:13 : alsa_output: buffer_size=22050 period_size=5513
Mar 31 14:13 : output: opened plugin=alsa name="Aune S16" audio_format=44100:32:2
Mar 31 14:13 : output: converting in=44100:16:2 -> f=44100:16:2 -> out=44100:32:2
Mar 31 14:13 : state_file: Saving state file /var/lib/mpd/mpdstate
Αυτό που βλέπουμε εδώ είναι ότι το μόνο conversion που γίνεται είναι από 16/44.1 σε 32/44.1 ώστε να μπορεί να αναπαράξει το 32μπιτο dac μου.
Η αλήθεια είναι ότι αγνοώ τη μεθοδολογία με την οποία γίνεται η μετατροπή αυτή.
Πάμε τώρα να δούμε τι γίνεται όταν ανοίξουμε όλα τα απαραίτητα στον mpd.conf για χρήση sox και quality very high. Η επιθυμητή δειγματοληψία resampling είναι 32/352.8:
Code:
Mar 31 14:26 : alsa_output: opened hw:1,0 type=HW
Mar 31 14:26 : alsa_output: buffer: size=90..131072 time=255..371520
Mar 31 14:26 : alsa_output: period: size=45..65536 time=127..185760
Mar 31 14:26 : alsa_output: default period_time = buffer_time/4 = 371519/4 = 92879
Mar 31 14:26 : alsa_output: format=S32_LE (Signed 32 bit Little Endian)
Mar 31 14:26 : alsa_output: buffer_size=131072 period_size=32768
Mar 31 14:26 : output: opened plugin=alsa name="Aune S16" audio_format=352800:32:2
Mar 31 14:26 : soxr: soxr engine 'double-precision'
Mar 31 14:26 : soxr: samplerate conversion ratio to 8.00
Mar 31 14:26 : output: converting in=44100:16:2 -> f=44100:16:2 -> out=352800:32:2
Εδώ λοιπόν επιβεβαιώνουμε εότι χρησιμοποιούμε τον sox για resampling. Επίσης βλέπουμε ότι η μετατροπή που γίνεται είναι από 16/44.1 σε 32/352.8. Επίσης αν θυμάμαι σωστά το double-precision αντιστοιχεί στο "very high" quality που έχουμε ορίσει.
Για την ιστορία, τις παραπάνω δοκιμές τις κάνω στο odroid c2, με καρφωμένο τον mpd και τα threads του σε isolated core και για τη μετατροπή από redbook σε 32/352.8 με την max ποιότητα του sox αυτό το ένα core απαιτεί max 30% χρήσης.
Κάτι τελευταίο που θέλω να αναφέρω είναι ότι δυστυχώς το resampling επηρρεάζει και τη λειτουργία DoP. Με χρήση του sox, σταματάμε να έχουμε dop και παίζουμε τα dsd στα 352.8.