Raspberry Pi als high-end audio streamer

Gestart door Gitaarwerk__, november 19, 2014, 20:45:01

« vorige - volgende »

Jimi Hendrix en 2 gasten bekijken dit topic.

hifiman

#575
Citaat van: DJ le Roi op april 28, 2017, 08:34:17
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?
Thanks!

Dat is een hele goede vraag en het antwoord is dat ik toen ik de pro had besteld nog niet afwist van het bestaan van de Allo Kali. Ik ga het nu eerst werkend maken helemaal op met wat ik heb en weet al bijna zeker dat ik daarna alsnog het Allo Kali bord ga proberen  :headbanging:

Edit: Ik heb het Allo Kali bord gelijk maar besteld  ^^

gizmo2

#576
Citaat van: Vhond op april 27, 2017, 09:41:32
@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?
Misschien verbinding maken dmv putty dan kun je wel het een en ander wijzigen, ben ook een poosje met een infrarood sensor bezig geweest en dat wilde uiteindelijk ook niet lukken terwijl de infrarood wel gezien wordt, verder heb ik daar weinig ervaring mee.
Je zou ook nog kunnen spelen met de bit diepte (resampling) in moodeaudio beïnvloed het geluid ook.

By the way Ben jij dit bij volumio @vhond.

https://volumio.org/forum/hifiberry-digi-pro-and-volumio-t4740-30.html





alles high-end verantwoord.

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

DJ le Roi

Citaat van: hifiman op april 28, 2017, 10:25:40
Thanks!

Dat is een hele goede vraag en het antwoord is dat ik toen ik de pro had besteld nog niet afwist van het bestaan van de Allo Kali. Ik ga het nu eerst werkend maken helemaal op met wat ik heb en weet al bijna zeker dat ik daarna alsnog het Allo Kali bord ga proberen  :headbanging:

Edit: Ik heb het Allo Kali bord gelijk maar besteld  ^^


Ik ben benieuwd wat je van de Kali vindt. Ik vind het een mooi apparaat. Voordeel is ook dat ik de Hifiberry Dac+ Pro met twee voedingen voedde (5V en 3,3 V) en dat dat bij de Kali niet meer hoeft.

hifiman

Citaat van: DJ le Roi op april 28, 2017, 12:22:19

Ik ben benieuwd wat je van de Kali vindt. Ik vind het een mooi apparaat. Voordeel is ook dat ik de Hifiberry Dac+ Pro met twee voedingen voedde (5V en 3,3 V) en dat dat bij de Kali niet meer hoeft.
Ik ook, het klinkt goed in elk geval als ik er zo over lees  ;D

Wat die 2 voedingen betreft, niet meer hoeft nee, maar 2 losse 5V voedingen lijkt me nog steeds de way to go...

Vhond

Citaat van: gizmo2 op april 28, 2017, 11:15:57
Misschien verbinding maken dmv putty dan kun je wel het een en ander wijzigen, ben ook een poosje met een infrarood sensor bezig geweest en dat wilde uiteindelijk ook niet lukken terwijl de infrarood wel gezien wordt, verder heb ik daar weinig ervaring mee.
Je zou ook nog kunnen spelen met de bit diepte (resampling) in moodeaudio beïnvloed het geluid ook.

By the way Ben jij dit bij volumio @vhond.

https://volumio.org/forum/hifiberry-digi-pro-and-volumio-t4740-30.html


Dank voor je antwoord. Het probleem zit 'm niet zozeer in hoe contact te maken met de RPI (putty is daar een manier voor), maar waar precies de code te 'injecteren'.

En ik hoop inderdaad een antwoord van 'michelangelo' te krijgen over wanneer Volumio geschikt is voor de Digi+ Pro (hij repte daar op 29 maart dat hij misschien over een week een release had, maar nu een maand later wel een nieuwe release maar zonder ondersteuning van de Digi+ Pro).

hifiman

Citaat van: Vhond op april 28, 2017, 14:55:25
En ik hoop inderdaad een antwoord van 'michelangelo' te krijgen over wanneer Volumio geschikt is voor de Digi+ Pro (hij repte daar op 29 maart dat hij misschien over een week een release had, maar nu een maand later wel een nieuwe release maar zonder ondersteuning van de Digi+ Pro).
PiCorePlayer doet het overigens wel met de digi pro.

hifiman

Alvast aan het nadenken over de layout en hoe alles gaat passen in de kast (er komt nog meer bij...).

Vhond

#582
Iemand een idee waar de latency waardes staan weggeschreven voor de kernel setup voor de audiodoorvoer van specifieke devices (in mijn geval de Digi+ Pro)?


Zie mijn eerdere post mbt voorbeeld RuneAudio (bovenstaande plaatje heeft betrekking op MoodeAudio)

hifiman

#583
Citaat van: Vhond op april 29, 2017, 07:21:45
Iemand een idee waar de latency waardes staan weggeschreven voor de kernel setup voor de audiodoorvoer van specifieke devices (in mijn geval de Digi+ Pro)?


Zie mijn eerdere post mbt voorbeeld RuneAudio (bovenstaande plaatje heeft betrekking op MoodeAudio)
Om hier even als linux man zijnde  op te reageren, het is een script dat uitgevoerd dient te worden, geen code die in /proc geinjecteerd moet worden.
Er staat in het script regels die kernel parameters in /proc wijzigen. Je kunt deze code bijvoorbeeld in /etc/rc.local zetten om het tijdens booten uit te laten voeren.

Ik neem tenmiste aan dat je hierop doelt:
https://github.com/RuneAudio/RuneUI/blob/dev/command/orion_optimize.sh

Vhond

#584
@Hifiman: ik begrijp dat het een shellscript is echter vraag ik me af of ik ergens in de MoodeAudiocode code kan opnemen om gebruik te kunnen maken van parameters die van invloed zijn op het geluid (niet door equalization maar door bv aanpassingen van de kernel latencywaardes en de MTU waardes voor ethernet).

Runeaudio heeft in hun interface een setting (Sound signatures) waarmee het shellscript wordt aangeroepen, Moodeaudio echter niet.

Maar ik begrijp dat jij het op een andere wijze zou aanpakken (een opstartscript waarmee je kernel parameters wijzigt)?

Ik vroeg me echter af hoe MoodeAudio z'n settings voor latency ed aanroept voor de Digi+ Pro kaart (of dat generieke settings zijn of specifieke settings voor die Hifiberry kaart en waar deze aanroep en verwijzing in MoodeAudio staan).

ovromans

Voor diegene die Moode audio gebruiken en hierop spotify willen gebruiken staat er een goede beschrijving op onderstaande pagina:

http://www.diyaudio.com/forums/pc-based/271811-moode-audio-player-raspberry-pi-756.html

Is een omslachtigere manier als bij Volumio,maar als je net als ik Moode audio i.c.m. hifiberry Digi + gebruikt is dit een alternatief.

Ben het nu aan het testen en het werkt goed.

Je rpi is nu een Spotify Connect apparaat.

hifiman

Citaat van: Vhond op april 29, 2017, 11:00:31
@Hifiman: ik begrijp dat het een shellscript is echter vraag ik me af of ik ergens in de MoodeAudiocode code kan opnemen om gebruik te kunnen maken van parameters die van invloed zijn op het geluid (niet door equalization maar door bv aanpassingen van de kernel latencywaardes en de MTU waardes voor ethernet).

Runeaudio heeft in hun interface een setting (Sound signatures) waarmee het shellscript wordt aangeroepen, Moodeaudio echter niet.

Maar ik begrijp dat jij het op een andere wijze zou aanpakken (een opstartscript waarmee je kernel parameters wijzigt)?
Kernel parameters wijzigen (permanent) doe je in /etc/sysctl.conf , dus daar heb je op zich geen script voor nodig...

Vhond

Ok, vergeef mijn onbeperkte kennis, maar geldt dat ook voor de andere parameters uit dat shellscript (https://github.com/RuneAudio/RuneUI/blob/master/command/orion_optimize.sh)
dus mbt mpd (prioriteit van het proces met renice) en dergelijke?

Erik1977

Citaat van: DJ le Roi op april 28, 2017, 08:34:17
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?

Misschien een stomme vraag maar hoe verbind je dat dan aan bijvoorbeeld een (externe) dac?

hifiman

Citaat van: Erik1977 op april 30, 2017, 13:02:30
Misschien een stomme vraag maar hoe verbind je dat dan aan bijvoorbeeld een (externe) dac?
Dat kan niet, ik sleutel dan ook IN de dac.

hifiman

Citaat van: Vhond op april 30, 2017, 10:30:22
Ok, vergeef mijn onbeperkte kennis, maar geldt dat ook voor de andere parameters uit dat shellscript (https://github.com/RuneAudio/RuneUI/blob/master/command/orion_optimize.sh)
dus mbt mpd (prioriteit van het proces met renice) en dergelijke?
Nee dat geldt alleen voor de /proc gevalletjes. Maarre, waarom moeilijk doen als het ook makkelijk kan en niet gewoon de inhoud van dit script aan /etc/rc.local toevoegen?

Vhond

Omdat ik het eea niet per se wilde aanroepen via een script met booten, maar definitief in settings wilde vastleggen aangezien ik de RPI alleen voor streamen wil gebruiken.

Maar als het niet anders gaat dan zal ik het inderdaad via een script aan rc.local koppelen.

hifiman

Het begint al een beetje vorm te krijgen... Nog even zonder het allo kali I2S bordje (is besteld).

Thanatos

Mooi blauw blok  :) ook bij HEC geweest :clapping:

hifiman

Citaat van: Thanatos op mei  1, 2017, 20:06:59
Mooi blauw blok  :) ook bij HEC geweest :clapping:
Haha dat klopt, heb er gelijk 2 meegenomen voor die prijs :-)

Thanatos

x2

Ze meten mooi schoon, kortsluiting veilig en 2A. Perfect voor de Pi zelf.  :thumbs-up:

hifiman

Citaat van: Thanatos op mei  1, 2017, 20:28:04
x2

Ze meten mooi schoon, kortsluiting veilig en 2A. Perfect voor de Pi zelf.  :thumbs-up:
Dat is ook precies waar ik hem voor ga gebruiken  :clapping:

hifiman

De I2S reclocker zit er ook in, het begint ergens op te lijken.. Het zou zo maar kunnen dat ik voor het einde van dit weekend een werkende streamer heb  ;)

chansig

Nice....handig als je een handige jongen bent.

Gr. Hans
Teleskopos, MA RSW 12, BACCH software, akoestisch gefröbel, Audio Gear powerkabels,  AQ Forest digitale/optische kabels.

hifiman

Citaat van: chansig op mei  5, 2017, 11:19:26
Nice....handig als je een handige jongen bent.

Gr. Hans
Thanks, vroeger veel met lego gespeeld  ;D