Raspberry Pi als high-end audio streamer

Started by Gitaarwerk__, November 19, 2014, 20:45:01

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Cyrus·

@StereoMike: gewoon, hobbiën... Mijn huidige config (Pi 3 + Hifiberry Digi+, standaard PSU) stelt mij al zeer tevreden. Maar ik vind het gewoon leuk om te tweaken en te variëren met software. Daarnaast werk je met een onafhankelijk, doorgaans open source platform, dus qua software heb je alle vrijheid.

Los daarvan: ook bij aanschaf van een kant-en-klare streamer (mijn persoonlijke opties zijn dan een Bluesound node of Auralic Mini) zou ik beslist de standaard meegeleverde PSU gaan vervangen door een goede lineaire voeding. Immers: de standaard meegeleverde stekeradapters zijn switching mode power supplies, vaak nog zeer goedkoop uitgevoerd (lees: slecht afgeschermd) en dat zijn nu eenmaal gekende potentiële bronnen van interferentie en andere storingen. Het digitale domein waarin de streamer werkt, is hier erg gevoelig voor.   
Groeten,
Edwin

Zweitse

Is er ook een mogelijkheid om Spotyfi te streamen via  Rpi?

DofN

You changed the outcome by measuring it! - Professor Farnsworth
NAD M33, Dali Epicon 6 en 2 x JL-E112, Bacch binaural software

Thanatos


AudioEnZo

Quote from: Thanatos on April 20, 2017, 10:03:27
Inclusief een 2e Pi die als LMS server dient.
Als je maar 1 Pi gebruikt kan LMS daar ook prima op draaien. In ieder geval indien je piCorePlayer gebruikt, werkt als een zonnetje.

Quote from: Zweitse on April 20, 2017, 11:34:30
Is er ook een mogelijkheid om Spotyfi te streamen via  Rpi?
Bij gebruik van LMS kan je Spotify als plug-in installeren, werkt prima!

Thanatos

Ik gebruik bewust 2x een Pi.

Zo min mogelijk load voor de streamer en eventuele hdd gekoppeld aan LMS kunnen zo via usb geen vervuiling binnen brengen.

Zweitse

Het gaat mij voornamelijk om het streamen van Spotify, is Pi Musicbox dan een goede optie?

Cyrus·

Op zich wel. Er lijkt alleen geen iOS-app voor te zijn, dus als je van iOS-devices gebruikt, zul je nog even dienen uit te zoeken hoe je de boel gaat bedienen indien je dat niet via de webinterface gaat doen.

Volumio (met de Spotify plugin) lijkt mij dan een makkelijkere optie.
Groeten,
Edwin

Thanatos

Quote from: Zweitse on April 20, 2017, 13:09:20
Het gaat mij voornamelijk om het streamen van Spotify, is Pi Musicbox dan een goede optie?

Ik gebruik de spotify en qobuz plugging bij PiCorePlayer. Bediening gaat gewoon via de originele app van Logitech Squeezebox

Vhond

Iemand ervaring met MoodeAudio en performance/sound tuning?

Met Runeaudio kan je zogenaamde Sound Signature (optimization profiles) kiezen waarbij je subtiel hoorbare veranderingen in het geluid kan teweegbrengen, echter Runeaudio draait niet echt stabiel (het lijkt erop dat veel wijzigen in de settings streamen via Airplay onmogelijk maakt.

Helaas kan ik het eea alleen maar oplossen (=lees aan de praat krijgen) als ik weer een 'maagdelijke' image van Runeaudio op het sd kaartje wegschrijf.

Heb nog niet gezien of het mogelijk is om weer terug te gaan naar de default instellingen.

Enfin was er een beetje klaar mee en heb daarom voor MoodeAudio gekozen, maar mis daar wel het deel performance/sound tuning, vandaar de vraag.

Zweitse

Quote from: Zweitse on April 20, 2017, 13:09:20
Het gaat mij voornamelijk om het streamen van Spotify, is Pi Musicbox dan een goede optie?
Ik gebruik nu Volumio met de Spotify plugin en ben tot nu toe tevreden.

StereoMike

Quote from: CyrusOne on April 20, 2017, 11:03:14
@StereoMike: gewoon, hobbiën... Mijn huidige config (Pi 3 + Hifiberry Digi+, standaard PSU) stelt mij al zeer tevreden. Maar ik vind het gewoon leuk om te tweaken en te variëren met software. Daarnaast werk je met een onafhankelijk, doorgaans open source platform, dus qua software heb je alle vrijheid.
Grappig, ik doe eigenlijk precies hetzelfde alleen is het formaat anders.
Sometimes the greatest way to say something is to say nothing at all from Justin Timberlake

gizmo2

#562
Quote from: Vhond on April 25, 2017, 09:57:15
Iemand ervaring met MoodeAudio en performance/sound tuning?

Met Runeaudio kan je zogenaamde Sound Signature (optimization profiles) kiezen waarbij je subtiel hoorbare veranderingen in het geluid kan teweegbrengen, echter Runeaudio draait niet echt stabiel (het lijkt erop dat veel wijzigen in de settings streamen via Airplay onmogelijk maakt.

Helaas kan ik het eea alleen maar oplossen (=lees aan de praat krijgen) als ik weer een 'maagdelijke' image van Runeaudio op het sd kaartje wegschrijf.

Heb nog niet gezien of het mogelijk is om weer terug te gaan naar de default instellingen.

Enfin was er een beetje klaar mee en heb daarom voor MoodeAudio gekozen, maar mis daar wel het deel performance/sound tuning, vandaar de vraag.

Ik weet wat je bedoelt in runeadio daar kun je kiezen uit een aantal presents en dat beïnvloed het geluid die functie werkt ook goed, maar net als jou vind ik runeadio slechts lopen op mij pi 3.
Ik draai nu al een poosje moodeaudio en daar zitten​ voor de rest geen instellingen kwa geluid in het enigste is misschien advanced kernel gebruiken die gebruik ik ook al een poosje maar kan niet echt zeggen dat ik verschil hoor.

Het is jammer dat volumio de digi+ pro nog niet ondersteund via USB klinkt het best wel mooi, de laatste heb ik vandaag nog geflashed en loopt helaas ook langzaam.

Al met al vind ik de performance van moodeaudio nog het beste of je moet voor PiCoreplayer gaan daar is sinds kort een bèta speciaal voor Audio.

https://sites.google.com/site/picoreplayer/home/news

alles high-end verantwoord.

mijn audio setje....Showcase :thumbs-up:

Vhond

@gizmo2: dank voor je reply.

Jammer dat er weinig gedaan wordt met soundtweaking bij de verschillende distributies, niet dat het heel veel doet maar er is toch een geringe verbetering te bespeuren in het geluid bij bepaalde soundsignatures in RuneAudio kernel settings als je het eea over een wat betere set afspeelt.

Meer valt te lezen op https://github.com/RuneAudio/RuneUI/blob/dev/command/orion_optimize.sh

Specifiek het stuk

##################
# sound profiles #
##################

# default
if [ "$1" == "default" ]; then
ifconfig eth0 mtu 1500
ifconfig eth0 txqueuelen 1000
echo 60 > /proc/sys/vm/swappiness
modKschedLatency hw=$2 s01=6000000 s02=6000000 s03=6000000 s04=6000000 s05=6000000 s06=6000000 s07=6000000 s08=6000000 s09=6000000 s10=6000000 u01=8 u02=8 u03=8 u04=8 u05=8 u06=8 u07=8 u08=8 u09=8 u10=8
mpdprio_default
echo "DEFAULT sound signature profile"
fi

# default
if [ "$1" == "RuneAudio" ]; then
ifconfig eth0 mtu 1500
ifconfig eth0 txqueuelen 1000
echo 0 > /proc/sys/vm/swappiness
modKschedLatency hw=$2 s01=1500000 s02=4500000 s03=4500000 s04=4500000 s05=4500000 s06=4500000 s07=4500000 s08=4500000 s09=4500000 s10=4500000 u01=3 u02=3 u03=3 u04=3 u05=3 u06=3 u07=3 u08=3 u09=3 u10=3
mpdprio_nice
echo "RuneAudio  sound signature profile"
fi

# mod1
if [ "$1" == "ACX" ]; then
ifconfig eth0 mtu 1500
ifconfig eth0 txqueuelen 4000
echo 0 > /proc/sys/vm/swappiness
modKschedLatency hw=$2 s01=850000 s02=3500075 s03=3500075 s04=3500075 s05=3500075 s06=3500075 s07=3500075 s08=3500075 s09=3500075 s10=3500075 u01=2 u02=2 u03=2 u04=2 u05=2 u06=2 u07=2 u08=2 u09=2 u10=2
mpdprio_default
echo "(ACX) sound signature profile"
fi

# mod2
if [ "$1" == "Orion" ]; then
ifconfig eth0 mtu 1000
echo 20 > /proc/sys/vm/swappiness
modKschedLatency hw=$2 s01=500000 s02=500000 s03=500000 s04=1000000 s05=1000000 s06=1000000 s07=100000 s08=1000000 s09=1000000 s10=1000000 u01=1 u02=1 u03=1 u04=1 u05=1 u06=1 u07=1 u08=1 u09=1 u10=1
sleep 2
mpdprio_default
echo "(Orion) sound signature profile"
fi

# mod3
if [ "$1" == "OrionV2" ]; then
ifconfig eth0 mtu 1000
ifconfig eth0 txqueuelen 4000
echo 0 > /proc/sys/vm/swappiness
modKschedLatency hw=$2 s01=120000 s02=2000000 s03=2000000 s04=2000000 s05=2000000 s06=2000000 s07=2000000 s08=2000000 s09=2000000 s10=2000000 u01=2 u02=2 u03=2 u04=2 u05=2 u06=2 u07=2 u08=2 u09=2 u10=2
sleep 2
mpdprio_nice
echo "(OrionV2) sound signature profile"
fi

# mod4
if [ "$1" == "OrionV3_iqaudio" ]; then
ifconfig eth0 mtu 1000
ifconfig eth0 txqueuelen 4000
echo 0 > /proc/sys/vm/swappiness
#modKschedLatency hw=$2 s01=139950 s02=2000000 s03=2000000 s04=2000000 s05=2000000 s06=2000000 s07=2000000 s08=2000000 s09=2000000 s10=2000000 u01=2 u02=2 u03=2 u04=2 u05=2 u06=2 u07=2 u08=2 u09=2 u10=2
if [ "$2" == "01" ]; then
    echo 1500000 > /proc/sys/kernel/sched_latency_ns
    echo 950000 > /proc/sys/kernel/sched_rt_period_us
    echo 950000 > /proc/sys/kernel/sched_rt_runtime_us
    echo 0 > /proc/sys/kernel/sched_autogroup_enabled
    echo 1 > /proc/sys/kernel/sched_rr_timeslice_ms
    echo 950000 > /proc/sys/kernel/sched_min_granularity_ns
    echo 1000000 > /proc/sys/kernel/sched_wakeup_granularity_ns
fi
sleep 2
mpdprio_nice
echo "(OrionV3 optimized for IQaudio Pi-DAC) sound signature profile"
fi

# mod5
if [ "$1" == "OrionV3_berrynosmini" ]; then
ifconfig eth0 mtu 1000
ifconfig eth0 txqueuelen 4000
echo 0 > /proc/sys/vm/swappiness
#modKschedLatency hw=$2 s01=139950 s02=2000000 s03=2000000 s04=2000000 s05=2000000 s06=2000000 s07=2000000 s08=2000000 s09=2000000 s10=2000000 u01=2 u02=2 u03=2 u04=2 u05=2 u06=2 u07=2 u08=2 u09=2 u10=2
if [ "$2" == "01" ]; then
    echo 60 > /proc/sys/vm/swappiness
    echo 145655 > /proc/sys/kernel/sched_latency_ns
    echo 1 > /proc/sys/kernel/sched_rt_period_us
    echo 1 > /proc/sys/kernel/sched_rt_runtime_us
    echo 0 > /proc/sys/kernel/sched_autogroup_enabled
    echo 100 > /proc/sys/kernel/sched_rr_timeslice_ms
    echo 400000 > /proc/sys/kernel/sched_min_granularity_ns
    echo 1 > /proc/sys/kernel/sched_wakeup_granularity_ns
fi
sleep 2
mpdprio_nice
echo "(OrionV3 optimized for BerryNOS-mini I2S DAC) sound signature profile"
fi

# mod6
if [ "$1" == "Um3ggh1U" ]; then
ifconfig eth0 mtu 1500
ifconfig eth0 txqueuelen 1000
echo 0 > /proc/sys/vm/swappiness
modKschedLatency hw=$2 s01=500000 s02=3700000 s03=3700000 s04=3700000 s05=3700000 s06=3700000 s07=3700000 s08=3700000 s09=3700000 s10=3700000 u01=3 u02=3 u03=3 u04=3 u05=3 u06=3 u07=3 u08=3 u09=3 u10=3
mpdprio_default
echo "(Um3ggh1U) sound signature profile"
fi

# dev
if [ "$1" == "dev" ]; then
echo "flush DEV sound profile 'fake'"
fi

if [ "$1" == "" ]; then
echo "Orion Optimize Script v$ver"
echo "Usage: $0 {default|RuneAudio|ACX|Orion|OrionV2|OrionV3_iqaudio|OrionV3_berrynosmini|Um3ggh1U} {architectureID}"
exit 1
fi


Weet ook niet of je (en waar) het eea zelf in de code kan invoeren?

DofN

Ik heb sinds een week of problemen met de connectie tussen de raspberry en de LMS op mijn NAS, van het een op het andere moment. Afspeellijsten in Qobuz zijn leeg en nummers willen niet spelen via Spotify. Muziek die opgeslagen is op de NAS kan wel afgespeeld worden. Het zijn de plugins die niet werken. Ik krijg soms IP-fout meldingen, soms kan de endconnector niet gevonden worden. Ik heb zowel de raspberry als de NAS geformatteerd en opnieuw geïnstalleerd.

Eerste vraag: waar hebben jullie LMS geinstalleerd? Op je NAS, PC of via pCP?
You changed the outcome by measuring it! - Professor Farnsworth
NAD M33, Dali Epicon 6 en 2 x JL-E112, Bacch binaural software

AudioEnZo

Ik heb LMS zowel op de NAS als de PC en de Mano streamer (RaspberryPi). Dus kan makkelijk switchen.
Wel op de Mano van de week ook problemen maar kort daarvoor was de portable harde schijf die aan de Mano hangt op de grond gekletterd. Resultaat: alle favorieten in LMS waren corrupt, niet de bestanden zelf maar er werden geen hoesjes meer getoond en er stond "null" bestand bij.
Ook was de configuratie van LMS terug naar default voor wat betreft de  plugins. Heel vreemd. Alles weer opnieuw ingesteld en spelen maar weer.

DofN

Hier krijg ik de plugins (Spotify en Qobuz) niet aan de praat.

Hoe heb je LMS in pCP geconfigureerd? Toen ik dat probeerde kreeg ik geen netwerkverbinding met mijn NAS waar de FLAC's opstaan, ook kon ik geen plugins installeren.
You changed the outcome by measuring it! - Professor Farnsworth
NAD M33, Dali Epicon 6 en 2 x JL-E112, Bacch binaural software

AudioEnZo

#567
Ik draai in pcp rechtstreeks van een op de Mano streamer aangesloten portable usb schijf. Daarvoor moet je in pcp in LMS tab bij "Pick from the following detected USB disks to mount" de USB schijf mounten en de naam die je bij "Mount point" in hebt gevuld gebruiken in LMS zelf bij "Basisinstellingen/Mediamappen" invullen. Bijv "/mnt/mountpointnaam".
Op deze manier heb je ook geen last van "eventuele" verschillen in netwerkkabels en zo. Ik  gebruik op deze manier alleen nog maar het netwerk om de boel te bedienen vanaf mijn tablet.

Ik heb dat zelf niet gedaan maar bij gebruik van een NAS moet je ook in de LMS tab in pcp bij "Setup Network Disk Mount" de netwerkshare mounten en op dezelfde manier in LMS invullen bij "Basisinstellingen/Mediamappen"

Omdat ik op drie apparaten LMS heb staan kan ik wel gemakkelijk vanaf de tablet van LMS server switchen via de app Orange Squeeze.

DofN

#568
Thx, ik zal eens kijken of ik eruit kom met deze informatie.

De plugins werken weer via LMS en de squeezebox als player.

Nu wordt pCP niet als player gezien in LMS noch getoond op de controller.
You changed the outcome by measuring it! - Professor Farnsworth
NAD M33, Dali Epicon 6 en 2 x JL-E112, Bacch binaural software

AudioEnZo

Oh ja, plugins in LMS op de pi installeren gaat hier zonder problemen! Misschien is dat bij jou een schijfgrootte probleem? Hier heb ik in pcp bij "Advanced mode operations/Resize FS" de grootte zodanig verandert dat de gehele 16GB van het gebruikte geheugen kaartje gebruikt kan worden. Wellicht helpt dat.

DofN

#570
Ik was gisteravond zo rond 10:00 begonnen met het onderzoeken van het probleem en het werkt nu sinds 10 minuten weer.

Ik heb inmiddels alle betrokken apparaten vanaf fabrieksinstellingen geïnstalleerd, hier en daar wat IP-adressen weggehaald en de hele bedoening in volgorde aangezet.  Als laatste heb ik de controller teruggezet op fabrieksinstellingen en sindsdien werkt het weer.

Ik ga vanavond of morgen eens kijken of ik LMS op de pi kan installeren met plugins met behulp van jouw aanwijzingen.

Eerst de volledige backup FLAC maar weer terugzetten op de NAS. Ik weet niet goed wat het probleem veroorzaakte, al zal het iets zijn in het netwerk icm een corrupte her-installatie van LMS op de NAS. Dat blijft toch een beetje houwtje touwtje.


NB: de app op de iPhone doet het nu ook feilloos.



You changed the outcome by measuring it! - Professor Farnsworth
NAD M33, Dali Epicon 6 en 2 x JL-E112, Bacch binaural software

hifiman

Ik ben begonnen met een high end (dat is de bedoeling althans) streamer te bouwen op basis van een raspberry pi middels een I2S verbinding van de hifiberry digi pro (eventueel later andere I2S interfaces proberen) naar een AK4396 DAC. Ik ga low noise voedingen gebruiken, voor elke sectie een eigen voeding en een eigen gebouwde analoge stage voor achter de DAC.

De testopstelling, om de I2S verbinding te testen,  werkt in elk geval.  :headbanging:

Vhond

Ziet er mooi uit, maar is zo te zien DAC versie van de Digi+ Pro.

Welke distributie draai je op de RPI?

DJ le Roi

#573
Interessant project hifiman.

Korte vraag: Waarom gebruik je de I2S verbinding van de Hifiberry Dac+ Pro en niet de I2S verbinding van de Allo Kali Reclocker die maar iets duurder is?

hifiman

Quote from: Vhond on April 27, 2017, 21:19:22
Ziet er mooi uit, maar is zo te zien DAC versie van de Digi+ Pro.

Welke distributie draai je op de RPI?
Klopt, dat was eigenlijk een vergissing, ik dacht de digi pro besteld te hebben maar dat was niet zo  :withstupid:
Uiteindelijk maakt het niet uit, ik gebruik toch alleen de I2S verbinding en de DAC chip sloop ik er waarschijnlijk nog af.

Ehh gewoon raspbian met squeezelite  :angel: