hifiman op reis door audio en video land

Gestart door hifiman, november 20, 2004, 13:42:46

« vorige - volgende »

0 leden en 16 gasten bekijken dit topic.

hifiman

Voor degenen die meer willen weten over de mogelijkheden van sox, hier vind je de manual:
http://sox.sourceforge.net/sox.pdf

Er is overigens ook een windows versie beschikbaar  ^-^

advr

Ollinn SET 300B, Devore O/96, Linn LP12, Linn Ekos SE/1, Linn Dynamiked Radikal, Linn Urika, Linn Kandid, Steve Herbelin's Tube Dampers, DH Lab powercords, Linn powercords, Nessie Vinylmaster

hifiman


advr



er is een Linn Majik DS-i uit Schotland onderweg... O0
Ollinn SET 300B, Devore O/96, Linn LP12, Linn Ekos SE/1, Linn Dynamiked Radikal, Linn Urika, Linn Kandid, Steve Herbelin's Tube Dampers, DH Lab powercords, Linn powercords, Nessie Vinylmaster

hifiman


hifiman

Ik heb ook nog even een polyphase 88.2 kHz file gemaakt om die mee te nemen in de vergelijking.

De files:
40479092 2010-01-18 10:35 origineel.flac
139641901 2010-01-18 14:38 polyphase88punt2.flac
150435467 2010-01-18 11:34 polyphase96.flac
150348199 2010-01-18 11:39 rate96-sox14-2.flac
78728544 2010-01-18 11:40 rate96-sox14-3.flac

Wat ga ik dus vergelijken:
- 96 khz polyphase versus 96 khz sox 14.2 rate -v upsampling
- 96 khz sox 14.2 rate -v upsampling versus 96 khz sox  14.3 rate -v upsampling
- 96 khz polyphase upsampling versus 88.2 khz polyphase upsampling
- de winnaar versus het origineel

Is dit een beetje logische aanpak?  :blink:

Noot 1: als 88.2 superieur blijkt aan 96 khz dan maak ik daar uiteraard ook nog rate -v versies van  ^-^
Noot 2: en dan het dither verhaal nog  :-X Ik ben nog wel even zoet geloof ik  :notify:
Noot 3: Als iemand deze files ook wil hebben om ze thuis te vergelijken op je streaming of pc gebaseerd systeem, PM me dan
Noot 4: Als iemand zich geroepen voelt mee te komen luisteren/vergelijken dan  :coffee:

advr

Ollinn SET 300B, Devore O/96, Linn LP12, Linn Ekos SE/1, Linn Dynamiked Radikal, Linn Urika, Linn Kandid, Steve Herbelin's Tube Dampers, DH Lab powercords, Linn powercords, Nessie Vinylmaster

hifiman

Mijn eerste bruikbare versie van een upsample script:


#!/bin/bash
#upsampling script
logfile=/var/log/upsampling.log
rm -rf $logfile
find $1 -type d -print0 | xargs -0 ls -d > /tmp/dirlist
IFS=$'\n'
for dir in `cat /tmp/dirlist`
do
cd $dir
       for flacfile in `ls *.flac`
       do
               if test `file $flacfile | grep "16 bit" | wc -l` -gt 0
               then
               echo Upsampling $dir$flacfile | tee -a $logfile
               /usr/bin/sox -v0.95 --buffer 32768 -t flac -r44100 -2 -c2 $flacfile -t flac -C0 -3 -c2 -r96000  96.flac rate -v 2>> $logfile
               mv 96.flac $flacfile
               else
               echo $dir$flacfile already upsampled
               fi
       done
done
rm -f /tmp/dirlist


Als volgt te gebruiken:
upsample /muziek

Het script zal ALLE flac files onder /muziek vinden, eerst checken of deze reeds upsampled zijn, zo ja dan laat hij de file met rust, zo nee dan upsampled hij de file.

Er verschijnen alleen nog wat foutmeldingen "No such file or directory" als er in een directory geen flac files aanwezig zijn, dit moet ik nog oplossen maar heeft verder geen negatieve invloed op de werking van het script.

Zoals je ziet heb ik op basis van wat testen de volume factor ondertussen al omlaag gebracht naar 0.95

Succes ermee mede upsamplers!  :headbanging:

hifiman

Voorbeeld van de output van het script met 2 cd's in /data/storage directory.

> upsample.sh /data/storage/
ls: cannot access *.flac: No such file or directory
Upsampling /data/storage/10 Years - CD 101 - Hymne.flac
Upsampling /data/storage/10 Years - CD 102 - Sail.flac
Upsampling /data/storage/10 Years - CD 103 - Love You More (feat. Racoon).flac
Upsampling /data/storage/10 Years - CD 104 - Communication part 3.flac
Upsampling /data/storage/10 Years - CD 105 - Yet Another Day (feat. Ray Wilson).flac
Upsampling /data/storage/10 Years - CD 106 - Burned With Desire (feat. Justine Suissa) (Rising Star mix).flac
Upsampling /data/storage/10 Years - CD 107 - 4 Elements.flac
Upsampling /data/storage/10 Years - CD 108 - Sound of Goodbye (Dark Matter remix).flac
Upsampling /data/storage/10 Years - CD 109 - Clear Blue Moon.flac
Upsampling /data/storage/10 Years - CD 110 - Blue Fear.flac
Upsampling /data/storage/10 Years - CD 111 - Exhale (feat. System F).flac
/data/storage/Cafe Blue01 - What A Shame.flac already upsampled
/data/storage/Cafe Blue02 - A Taste Of Honey.flac already upsampled
/data/storage/Cafe Blue03 - Too Rich For My Blood.flac already upsampled
/data/storage/Cafe Blue04 - Romanesque.flac already upsampled
/data/storage/Cafe Blue05 - Yellow Car III.flac already upsampled
/data/storage/Cafe Blue06 - Wood Is A Pleasant Thing To Think About.flac already upsampled
/data/storage/Cafe Blue07 - Inch Worm.flac already upsampled
/data/storage/Cafe Blue08 - Ode To Billy Joe.flac already upsampled
/data/storage/Cafe Blue09 - Morning Grace.flac already upsampled
/data/storage/Cafe Blue10 - The Thrill Is Gone.flac already upsampled
/data/storage/Cafe Blue11 - Nardis.flac already upsampled
/data/storage/Cafe Blue12 - Manha De Carnaval.flac already upsampled
>

hifiman

In de logfile is te zien of er clipping optrad tijdens het upsamplen:

# tail -f /var/log/upsampling.log
Upsampling /data/storage/Live01 - Thunderstruck.flac
/usr/bin/sox WARN rate: rate clipped 10229 samples; decrease volume?
/usr/bin/sox WARN dither: dither clipped 8954 samples; decrease volume?
Upsampling /data/storage/Live02 - Shoot To Thrill.flac
/usr/bin/sox WARN rate: rate clipped 9487 samples; decrease volume?
/usr/bin/sox WARN dither: dither clipped 8370 samples; decrease volume?

(had expres even de volume factor op 0.99 gezet weer om deze output te kunnen zien  ;) )

hifiman

Tsja zit je net te vergelijken gaat de telefoon en staat het komende uur de vrouw er dus tussendoor te kleppen  :-X  ;)

Ik heb overigens de sox binary die met squeezeboxserver wordt meegeleverd vervangen door de 14.3 64 bits versie en voila, het cpu gebruik van de realtime upsampling daalt gelijk van 70-100% naar 20-40%  :notify:

)p(

Citaat van: Audioloog op januari 18, 2010, 18:51:03

Ik heb overigens de sox binary die met squeezeboxserver wordt meegeleverd vervangen door de 14.3 64 bits versie en voila, het cpu gebruik van de realtime upsampling daalt gelijk van 70-100% naar 20-40%  :notify:

Dat maakt het een stuk makkelijker om daar mee te leven.

peter

hifiman

Citaat van: )p( op januari 18, 2010, 19:25:11
Dat maakt het een stuk makkelijker om daar mee te leven.

peter
Psies!   :P

hifiman

Vandaag geen tijd gehad om verder te gaan met het upsampling verhaal.   :crazy:

Ik kreeg nog wel een teken vanuit de andere wereld toen ik vanochtend onderweg naar het werk een blik op mijn kilometer teller wierp en deze precies op 88200 stond  :blink:

kermit

Citaat van: Audioloog op januari 19, 2010, 22:35:53
Vandaag geen tijd gehad om verder te gaan met het upsampling verhaal.   :crazy:

Ik kreeg nog wel een teken vanuit de andere wereld toen ik vanochtend onderweg naar het werk een blik op mijn kilometer teller wierp en deze precies op 88200 stond  :blink:

Tijd voor een andere auto. :D

celerontje

Citaat van: Audioloog op januari 19, 2010, 22:35:53
Vandaag geen tijd gehad om verder te gaan met het upsampling verhaal.   :crazy:

Ik kreeg nog wel een teken vanuit de andere wereld toen ik vanochtend onderweg naar het werk een blik op mijn kilometer teller wierp en deze precies op 88200 stond  :blink:
Op naar de 96000! ;D
If you want to see The Dark Knight really ''dark'', then simply power-off your projector! ;)

I will look for you, I will find you, and I will make an HT addict of you!

hifiman

Citaat van: celerontje op januari 19, 2010, 22:58:16
Op naar de 96000! ;D
Die ga ik niet halen met deze (lease)auto (wordt eind van de zomer ingeleverd  :D ).

hifiman

Om de volumefactor goed te kunnen bepalen (te hoog = clipping, te laag = onnodig verlies aan dynamiek en resolutie) is het plan om een 1 kHz 0 dB sinus te nemen en deze te upsamplen en daarmee de ideale volumefactor te bepalen.

Het genereren van een 1 kHz sinus doen we simpel door glsweep te misbruiken.

hifiman

Door te checken in een (visuele) audio editor kwam ik erachter dat bovenstaand niet werkt. Er moet echt een range opgegeven worden bij glsweep.
Dit heb ik even simpel opgelost door de sweep in 60 seconden te laten lopen van 999 naar 1000Hz en dan gaat het wel goed  :D

Vervolgens de mono 32 bits pcm file omzetten naar een 16 bits stereo wav file, dit doen we wederom met sox:
sox -t raw -r 44100 -c 1 -f4 sweep.pcm -t wav -c 2 -s2 sweep.wav

Dan blijkt dat er tijdens het omzetten wederom clipping optreed.  :withstupid:
De oplossing die ik hiervoor gebruikt heb is om de sweep op -6 dB te genereren, dan de omzetting (geen clipping ditmaal) en dan in een wav editor een gain van 6 dB toe te passen en de wav file weer op te slaan.

Dan is het nu tijd om deze file (na conversie naar flac) te gaan upsamplen.  ^-^

hifiman

Tsja en dan blijkt dat er helemaal geen clipping optreed, blijkbaar is een zuivere sinus niet het aangewezen signaal om clipping tijdens upsampling vast te stellen  ;)

BuSpu

Misschien helpt het je niet of weet je het allang, maar als je aan een 16 bits signaal gaat rekenen, zeg je maakt het 0,5 dB zachter, dan vliegt je datarate omhoog. Het verzwakte signaal kan zo maar ineens 24 of 32 bits zijn. Vandaar dat de dithering zo cruciaal is om te zien dit weer netjes terug te rekenen naar 16 bit.

Daarnaast heb ik eens een artikel gelezen waarin wordt gesteld dat audiosignaal in het digitale domein beter niet gemaximised kan worden omdat dit in combinatie met geringe tijdfouten (jitter) tot enorme rekenfouten kan leiden aan de DA-kant. De grafieken in het artikel warne schrikbarend.

For what it's worth  ;)

hifiman

Citaat van: BuSpu op januari 20, 2010, 12:33:38
Misschien helpt het je niet of weet je het allang, maar als je aan een 16 bits signaal gaat rekenen, zeg je maakt het 0,5 dB zachter, dan vliegt je datarate omhoog. Het verzwakte signaal kan zo maar ineens 24 of 32 bits zijn. Vandaar dat de dithering zo cruciaal is om te zien dit weer netjes terug te rekenen naar 16 bit.
Ik vrees dat ik je even kwijt ben  :D  ;)

Waarom vliegt de datarate omhoog als de woord lengte en sample frequentie gelijk blijft???
Waarom veranderd de woord lengte "zomaar ineens" zonder dat je dat bewust al dan niet hebt ingesteld???
Dithering gebruik je over het algemeen inderdaad alleen als er teruggerekend wordt naar een lagere woord lengte, echter heeft volgens mij weer niets met datarate te maken.

Zoals ik zei, ik ben je even kwijt  ;)

Citaat van: BuSpu op januari 20, 2010, 12:33:38
Daarnaast heb ik eens een artikel gelezen waarin wordt gesteld dat audiosignaal in het digitale domein beter niet gemaximised kan worden omdat dit in combinatie met geringe tijdfouten (jitter) tot enorme rekenfouten kan leiden aan de DA-kant. De grafieken in het artikel warne schrikbarend.
Voor alle duidelijkheid, er is geen enkele wens bij mij om muziek date te normaliseren, het ging enkel en alleen om de 1 kHz testtoon, maar wellicht dat je dat ook bedoelde.


Groetjes,

Ronald

hifiman

Ondertussen heb ik een 10 minuten zitten vergelijken tussen de eerder genoemde verschillende upgesampelde files. De verschillen zijn (voor mij) dusdanig klein dat ik al snel erg luistermoe werd van het proberen te vinden van een rangorde tussen deze bestanden.

Mijn eerste voorzichtige conclusies zijn:
- alle upsampled versies klinken beter dan het origineel
- de rate -v methode klinkt niet slechter dan de polyphase methode
- 96 kHz klinkt iets beter dan 88.2 kHz (maar de eerlijkheid gebied te zeggen dat ik gisteren het omgekeerde meende te horen)
- Ik hoor geen verschil tussen sox 14.2 en sox 14.3 bestanden

Dus nog even samengevat, upsampling is duidelijk een verbetering, de verschillen tussen de verschillende upsampling methoden zijn dusdanig dat ze voor mij  zo 123 niet makkelijk vast te stellen zijn. Het kan dus best zijn dat ik na nog een paar sessies wat duidelijker verschillen ga horen, maar misschien ook niet  ;)

In elk geval kies ik er op dit moment even voor om voorlopig realtime upsampled te luisteren met sox 14.3 en dus de rate -v methode, met lage cpu belasting op 96 kHz upsampling  ^-^

Als ik na wat langer luisteren tot andere conclusies kom dan horen jullie het  :notify:

BuSpu

Citaat van: Audioloog op januari 20, 2010, 14:51:44
Ik vrees dat ik je even kwijt ben  :D  ;)

Ik heb het misschien verkeerd benoemd maar als je volumes gaat veranderen gaat de woordlengte enorm omhoog, dat bedoelde ik Dus als je een schone 16 bit file hebt en je past het volume aan dan is het zeker geen 16 bit meer maar 24 of misschien 32 bits. Correct toegepaste dithering helpt om netjes terug te rekenen naar 16 bit, als je dat wilt.

Hoop dat je me nu kan volgen ;)

hifiman

Citaat van: BuSpu op januari 20, 2010, 15:12:52
Ik heb het misschien verkeerd benoemd maar als je volumes gaat veranderen gaat de woordlengte enorm omhoog, dat bedoelde ik Dus als je een schone 16 bit file hebt en je past het volume aan dan is het zeker geen 16 bit meer maar 24 of misschien 32 bits. Correct toegepaste dithering helpt om netjes terug te rekenen naar 16 bit, als je dat wilt.

Hoop dat je me nu kan volgen ;)
Hoi Arnout,

Ik snap nu wat je bedoeld maar we verschillen wel van mening op dit punt  ;)

Je kunt best een 16 bits audio bestand in volume verlagen/verhogen en het resultaat nog steeds in 16 bits houden. De reden dat er dan meestal voor 24 (of hoger) gekozen wordt is om het effect van de onvermijdelijke afrondingsfouten te minimaliseren. Dithering zorgt ervoor dat bij het teruggaan in resolutie de geluidkwaliteit verbeterd wordt door het toevoegen van random ruis.

Groetjes,

Ronald