goto English version

Website by Andre Kappert

LinkedIn-profiel van André Kappert weergeven Profiel van André Kappert weergeven

Content

Het probleem met hoofdtelefoons

DVDtoHP

CDRipper, GUI of cdparanoia

Calculator iaddi

Ingezonden brief “Elektuur”

Aanvulling op brief

Mandelbrot fractals


Het probleem met hoofdtelefoons.

Geluidopnames zijn gemixt voor weergave met luidsprekers. Zelfs de beste hoofdtelefoons kunnen dit niet verbergen.Het is alsof je de wereld door een vissenkom bekijkt, maar dan auditief. Sterk vergrootte, maar ook sterk gekromde ruimte, met sterke dispersie of kleurschifting. Als een geluid van de linkerluidspreker in een rechte lijn naar de rechter luidspreker beweegt, zal het met een koptelefoon klinken alsof er met variabele snelheid een cirkelbeweging wordt gemaakt, van oor tot oor! Deze snelheid is ook nog eens frequentie afhankelijk. In figuur 1 zie je een gewone opstelling met twee luidsprekers. Laten we aannemen dat hier geluisterd wordt naar een koor met 120 deelnemers. Via weergave met 2 luidsprekers lijken de deelnemers evenredig gedistribueerd achter de luidsprekers, met de hoek beperkt door de hoek van de luidsprekers. Wat er gebeurd als dit wordt beluisterd met hoofdtelefoon is weergegeven in figuur 2.
Speaker opstellingHeadphones opstelling (virtual)
Probleem 1:
Bij luidsprekers bereikt iedere luidspreker beide oren, maar het geluid van de luidspreker aan de andere zijde wordt enigszins gedempt. Hoe hoger de frequentie hoe hoger deze dempingsfactor. Omdat het geluid van 2 luidsprekers naar het oor gaat wordt het geluid enigszins versterkt. Deze versterking is voor lagere frequenties hoger. Dit gebeurd niet bij hoofdtelefoons zodat het lijkt of de lagere frequenties van grotere afstand komen (in figuur 2 representeren de rode objecten de lage frequenties, in figuur 1 overlappen de hoge en lage frequenties elkaar). Ieder geluid is opgebouwd uit lagere en hogere tonen(boventonen en grondtoon). Met een hoofdtelefoon lijkt dit geluid niet van 1 punt te komen, maar van een gebied. De frequenties worden gescheiden. Dit niet alleen over de afstand ,maar ook over de hoek, de HRTF(human ratio transfer function) is niet alleen een functie van de frequentie maar ook van de hoek. Er zijn merken hoofdtelefoons op de markt die compenseren voor de lagere weergave van de lagere frequenties, maar deze compensatie werkt niet voor de afwijking van hoeken.
Probleem2:
Als al het geluid via 1 kanaal binnenkomt, lijkt de bron van het signaal zich achter 1 luidspreker te bevinden. Dit is de maximaal weer te geven hoek en dit klinkt nog steeds Natuurlijk. Wanneer dit wordt beluisterd met een hoofdtelefoon lijkt de bron van het signaal zich in het oor te bevinden. Het andere oor is geheel geluidsloos. Dit soort geluidsbeeld ervaar je normaal gesproken alleen bij het horen van een mug en klinkt absoluut niet aangenaam. Het kan zelfs stress veroorzaken omdat de bron van het geluid van zo dicht bij lijkt te komen.
Probleem 3:
Het gehoorsysteem probeert de locatie van de bron van het geluid te vinden. Het haalt deze informatie uit het amplitude verschil en uit het faseverschil. Deze verschillende systemen geven het beste resultaat voor verschillende frequentiebanden. Er is echter een overlap van deze systemen voor de belangrijkste frequentieband waar het gehoor het gevoeligste voor is (1000Hz -5000Hz). Bij een hoofdtelefoon geven deze verschillende systemen geen coherent resultaat voor de locatie. Het is voor het gehoor vermoeiend om hiervoor te corrigeren. Dit zou ook de reden zijn dat met luisteren via hoofdtelefoon het geluid altijd van achteren lijkt te komen.
Oplossing:
Mix het ene kanaal met het vertraagde en met het HRTF gefilterde signaal van het andere kanaal. Een soort van kunstmatige hoofd opname. Het geluid bereikt nu de oren alsof het uit 2 luidspreker in de oorspronkelijke opstelling komt. The vertraging geeft de juiste fase, de HRTF filter geeft de juiste amplitude.Het probleem is nu de juiste HRTF te vinden. Het kan gevonden worden door te testen met een testsignaal bestaande uit een simpele sinusgolf. Mijn programma DVDtoHP  kan gebruikt worden voor fijnafstemming van de HRTF.
Ik heb een LADSPA filter gemaakt die deze signaalverwerking kan uitvoeren. Het kan gebruikt worden in geluidsbewerkingsprogramma's en Media players die dit ondersteunen. In figuur3 en 4 een grafische voorstelling wat dit filter met een testsignaal van roze ruis doet. Het verschil is aanzienlijk.
DVDtoHPexample2
Figuur 3: Voorbeeld bestaande uit roze ruis

DVDtoHPexample2 Bewerkt
Figuur 4:Met stereotobinaural LADSPA bewerkte voorbeeld, met gain =1.0

 Het programma DVDtoHP maakt gebruik van dezelfde techniek om 5.1 opnames voor hoofdtelefoon geschikt te maken, maar met een uitbreiding voor de extra luidsprekers. Het probleem dat het geluid van achter lijkt te komen is nog steeds niet opgelost, dus het algoritme is nog steeds vatbaar voor verbetering zodra ik door heb waar dit aan ligt maar de spreiding van het geluid is al veel beter. Je kunt nu veel nauwkeuriger de bron van het geluid plaatsen en de scheiding van de instrumenten is veel beter.

Een gelijkaardig product is het bs2b filter (Bauer stereophonic-to-binaural DSP). Het belangrijkste verschil is dat mijn versie oorspronkelijk is gemaakt voor 5.1 opnames (in de vorm van DTS en AC3 bestanden, Linux versie). Dezelfde techniek kan ook voor stereo bestanden worden gebruikt. Beide filters are crossfeeding. Het bs2b filter lijkt te zijn afgeleidt van een analoog filter, mijn filter probeert de natuurlijke situatie zo veel mogelijk te simuleren. Het zou het comb filter effect proberen te onderdrukken, mijn versie ziet het comb effect als een natuurlijk effect, het komt ook onvermijdelijk bij een 2 speaker systeem voor. De vertraging geeft een gesimuleerde positie van de speakers. De demping moet zo zijn afgesteld dat deze demping tot dezelfde positie leidt. Het gebruikte filter is een convolutie filter. Voor vergelijking van mijn filter met bs2b, is het programma HP_Player uitgerust met een radiobutton om het gebruikte filter te kiezen.

Downloads

De Linux versie werkt met het van Ubuntu bekende .deb automatisch installatie programma. Het installeert ook een simpele audioplayer (HP Player) die gestart kan worden vanuit het menu, welke automatisch de juiste plugin kiest voor de 2 of 6 kanaals audio file. Het kan bijna ieder formaat afspelen (met uitzondering van wma). Voor dit programma is een snelle computer noodzakelijk (meer dan 1.7 GHz duo core processor simpele notebook). De HP Player for Windows heeft een maar heel beperkte werkzaamheid. Het werkt alleen maar met stereo bestanden en ook maar met een beperkt aantal formaten.  De meeste winst valt te behalen met 5.1 bestanden, maar Windows geeft te veel problemen bij de implementatie.

Voor Windows en Linux is er nu ook een VST plugin. Voor werken met een DAW zijn goede monitors aan te raden. Door deze VST filter op de master in te pluggen kan er nu ook met hoofdtelefoon gemixt en gemasterd worden.

Updated 11 juli 2018:Dependencies libav-tools and libqt4pas5 removed because not available in modern repository of Linux Mint.

Download LADSPA  and VST plugin for Windows  7,8 and 10 (VST 32 bits version and 64 bits version).
Download LADSPA plugin and VST Plugin for Linux 64 bits
Download LADSPA plugin and VST Plugin for Linux 32 bits
Download LADSPA plugin and VST Plugin for OSX
Download HP_Player for Windows with all Dependencies


DVDtoHP

Image og DVDtoHP

DVDtoHP is bedoeld voor extractie van audio van DVD's.  Deze uitleg gaat over de Linux versie, maar is vrijwel hetzelfde als bij de Windows versie. Er is ook een Windows en Macintosh versie gemaakt en te downloaden. De audio op DVD''s is meestal aanwezig in verschillende formaten. De beste kwaliteit is .dts(5.1), tweede keus is .ac3(5.1) audio track. Af en toe is er een stereo audio track beschikbaar (in ac3 of lpcm formaat). Deze stereo track is meestal niet de beste kwaliteit, te veel compressie en zelfs clipping. In mijn eerste experiment heb ik geprobeerd de 6 kanalen tracks van DVD te downmixen naar een stereo track met behulp van Audacity. Wanneer de achter kanalen werden gemixt met de voorkanalen kreeg ik af en toe vreemde geluidseffecten of een onduidelijk stereo beeld. Wanneer ik de achter kanalen wegliet, bleek soms belangrijke geluidsinformatie te missen.
    Een andere benadering bleek nodig. Het is niet mogelijk 6 kanalen te reproduceren met 2 kanalen (stereo) of het zou een kunsthoofd opname moeten zijn, van een surround opstelling, beluisterd met een hoofdtelefoon. DVDtoHP simuleert een kunsthoofd opname. Geluid van het rechter kanaal bereikt eerst het rechter oor en met vertraging het linker oor. Hogere frequenties worden bij het linker oor meer gedempt dan de lage frequenties.Dit wordt gesimuleerd door het rechter kanaal met een vertraging en filtering aan het linkeroor aan te bieden en visa versa. De achter kanalen krijgen meer vertraging en sterkere filtering als de voorste kanalen.
    Het is moeilijk te voorspellen hoe dit zal klinken voor verschillende mensen. Iedere persoon heeft een ander HRTF, Head Related Transfer veroorzaakt door verschillende bouw van het hoofd en de oren. Eigenlijk zou een normale stereo opname niet beluisterbaar moeten zijn met hoofdtelefoons. Geluid wordt volkomen onafhankelijk aan de oren aangeboden, iets wat in werkelijkheid alleen voor komt wanneer er een bij zou rondzoemen in 1 van je oren. Het menselijke brein is toch nog in staat dit onnatuurlijke geluid te verwerken. Het menselijke brein zou deze kunstmatige kunsthoofd opnames  nog beter moeten kunnen verwerken.
    Voorbeeld: Neem een opname van een signaal met een lage frequentie, met het ene kanaal in tegenfase met het andere kanaal. Wanneer dit wordt beluisterd via speakers zal dit geluid vrijwel niet te horen zijn (dit gebeurd af en toe in het echt als de kabelaansluitingen van de speaker zijn verwisseld). Als dit wordt beluisterd met een hoofdtelefoon krijg je de volle power op je oren. Een bewijs dat dezelfde opname beluisterd met hoofdtelefoon totaal anders kan klinken. Als deze opname bewerkt is met dit programma, zal het via de hoofdtelefoon klinken alsof je het via speakers beluisterden en aldus ook nauwelijks horen.
    Het programma is naast 5.1 audio in staat stereo audio files te verwerken ( wav, flac, mp3 etc.). Luisteren geeft het zelfde geluidsbeeld alsof je via luidsprekers luistert, met hetzelfde geluidsbeeld zoals bedoeld bij het mixen. CD's worden gemixed voor een luidspreker setup, niet voor hoofdtelefoon.
     Het programma is in staat om verschillende conversies tegelijkertijd te verrichten, om multi core processors optimaal te benutten. De conversie verloopt op de achtergrond en de computer kan normaal gebruikt worden.
    Het programma heeft drie knoppen. De eerste knop start een scherm waarop een audio track van de geladen DVD kan worden geselecteerd. Deze wordt opgeslagen in het originele formaat (dts, ac3 or wav). Er vind geen conversie plaats. Het programma gebruikt hiervoor mplayer van package mplayer dus dit package moet zijn geïnstalleerd.
    De tweede knop start de conversie, het vraagt eerst naar de input audio file, daarna de output file. Hier kan gekozen worden voor wav, flac of mp3 formaat. Er kan vervolgens eventueel metadata worden ingevoerd die bij de automatische compressie wordt gebruikt. Dan verschijnt er een wachtscherm met het verloop van de conversie. Dit scherm is onafhankelijk, er kan nu een ander conversie gestart worden, terwijl deze conversie doorloopt. Het programma gebruikt ffmpeg uit package ffmpeg om dts en ac3 files te decomprimeren naar 6 kanalen floating points (grote bestanden).
    Vervolgens wordt dit bestand naar een 2 kanaals floating points bestand geconverteerd, het wordt genormaliseerd en vervolgens naar een Microsoft 16 bits stereo bestand geconverteerd. Vervolgens eventueel compressie met programma lame of flac uit packages lame en flac.
    Dit programma is afhankelijk van de programma's ffmpeg uit package ffmpeg voor decompressie dts en ac3 files, sox uit package sox voor resampling naar eventueel 44100 Hz bestanden (de kwaliteit van sox voor resampling schijnt beter te zijn dan die van ffmpeg voor resampling). Om de DVD te rippen wordt mplayer van package mplayer gebruikt. Voor compressie lame of flac uit package lame en flac. Al deze programma worden automatisch geinstalleerd door het deb installatie programma. Voor andere Linux versies is ook het kale programma beschikbaar. Hierbij moeten deze afhankelijkheden door de gebruiker zelf worden opgelost.
Het is onduidelijk voor mij of Pakket libdvdread4 (je moet deze activeren met  "sudo /usr/share/doc/libdvdread4/install-css.sh" in terminal) ook geïnstalleerd moet worden. Deze zou nodig zijn om de DVD te descrambelen. Deze is bij mij altijd al automatisch? geïnstalleerd, dus bij testen is er door mij geen rekening mee gehouden (ik was het bestaan eigenlijk al vergeten).


Hoe een HRTF te creëren (leken kunnen gewoon de default HRTF gebruiken).

create HRTF image
Delayfront: De vertraging veroorzaakt door de extra af te leggen afstand tussen linker luidspreker en rechter oor in vergelijking tot die afstand tot het linkeroor. 2.5e-4 seconden betekent 11 samples bij een samplingfrequentie van 44100, en het betekend 7.5 cm extra afstand. Ik raad aan dit niet te wijzigen. Als dit te groot wordt ingesteld lijken de geluiden dicht bij het hoofd te ontstaan.
Delayback: De vertraging van de linkerluidspreker tot het rechteroor in vergelijking tot het linkeroor.6.12e-4 is 27 samples bij een samplingfrequentie van 44100 en betekent een extra afstand  van 18 cm.
Beeplenght:Lengte van de testtoon.
Samplefreq: Samplingfrequentie van de testtoon.
Testlength:Testbeep wordt van links naar rechts herhaald, dit is de totale lengte van het testsignaal.
De lijst met de kop “List of HRTF”: De lijst met de actuele waarden van HRTF. Het eerste getal is de frequentie, het tweede getal is de demping voor de front luidspreker, het derde getal is de demping voor de luidsprekers aan de zijkant. De laatst gebruikte frequentie is altijd 24000 want dit is de bandbreedte van een DVD.
De lijst met de kop”List of Test frequencies”: Eerste getal is de frequentie van testbeep, tweede getal is de bandbreedte van testbeep. Meerdere frequenties tegelijk zijn mogelijk(meerdere regels).Ik raad aan de bandbreedte 1 Hz te houden, en maar 1 frequentie te gebruiken.
Halfpulse checkbox: Geeft testbeep snelle attack, alleen gebruiken bij de laatste fase, omdat het de bandbreedte van testbeep laat toenemen en dus meerdere instellingen van de HRTF gaan meespelen.
Nameof:Hier kun je de naam van de HRTF instellen, meestal naam persoon.

Testen:

Gebruik hoofdtelefoon, druk knop “Test Front Audio”. Als de afstelling correct is, klinkt het geluid alsof het afkomstig is van een hoek van 30 graden achter je (Ja, via de hoofdtelefoon klinkt het geluid nog steeds alsof het achter je ontstaat, het volgende probleem om op te lossen). Als het testsignaal meer vanuit het centrum komt moet het tweede getal van de HRTF voor die frequentie kleiner worden, als het geluid uit een te wijde hoek lijkt te komen moet dit getal groter worden. Dit moet voor iedere frequentie herhaalt worden. Indien noodzakelijk kunnen extra frequenties aan de HRTF lijst toegevoegd worden. Het testsignaal moet symmetrisch klinken. Bij frequenties tussen 1000 hz en 4000 hz kan er een vreemd verschijnsel ontstaan, het testsignaal klinkt niet langer symmetrisch. Dit werd veroorzaakt door een verkeerde HRTF voor deze frequentie. Uit de vertraging van het signaal berekent het brein een andere richting dan uit de demping. Een onoplosbaar probleem voor het brein die blijkbaar voor ieder oor anders wordt opgelost. Afstelling van de HRTF zal deze twee gegevens in overeenstemming moeten brengen. Dit is nu juist de reden dat de HRTF voor iedere persoon apart moet worden bepaald om het geluid meer natuurlijk te maken en plezieriger te maken om te luisteren.
Met de “Test Side Audio” knop moet het geluid van de zijkanten (de back speakers) lijken te komen. Probeer eerst het laatste getal (demping) voor de testfrequentie in de HRTF lijst groter te maken. Als het geluid niet exact van de zijkanten komt, maak dan het getal kleiner. Als het te klein wordt, lijkt het geluid van te dichtbij te komen. Probeer de grens op te zoeken. Deze getallen worden alleen gebruikt bij 5.1 opname, CD hebben deze kanalen niet. Herhaal dit voor alle frequenties.

Probeer opnieuw alle frequenties en allebei de “Test *** Audio” knoppen met de HalfPulse checbox checked.
In  de list test frequencies kan de testfrequentie ingesteld worden, het eerste getal is de testfrequentie, het tweede getal is de bandbeedte van het testsignaal.Het testsignaal wordt gegenereerd door een deltafunktie of witte ruis door een filter met deze bandbreedte te filteren.De bron kan ingesteld worden met de checkbox "white noise".
Sla het resultaat op met de “Save file” knop. Als het wordt opgeslagen met de naam “default.hrtf” in de home map, wordt de HRTF automatisch geladen bij start van het programma.



Voorbeelden (voor testen met hoofdtelefoon)

De voorbeelden zijn slechts stereo opnamen, omdat deze royalty free moeten zijn. De beste kwaliteit zou eigenlijk van een DTS opname komen. De opname is gemaakt met hydrogen drumcomputer, de stick en de kick die van links naar rechts beweegt. Via de hoofdtelefoon klinkt het alsof de instrumenten eerst op het linkeroor staan, daarna op een vage plek achter je, daarna op het rechteroor. Geconverteerd naar een binaural recording legt  het instrument een route af met een duidelijker locatie en de extreem geplaatste instrumenten (absoluut rechts of links) klinken niet direct bij het oor. De opnames geconverteerd naar binaural opnames klinken veel natuurlijker. De originele opnames klinken irritanter als ze beluisterd worden met koptelefoon. Soms lijk je twee mono signalen te horen. Example2 is een extremer voorbeeld, roze ruis op een kanaal. Bij beluistering met hoofdtelefoon lijkt het geluid in het oor te ontstaan, wat heel onnatuurlijk klinkt. Bij de geconverteerde versie lijkt het beeld onder een hoek van 30 graden achter je te ontstaan. Nog steeds achter je maar met een veel betere ruimtelijke plaatsing. Thuis beluister ik alleen nog maar geconverteerde opnamen via de hoofdtelefoon. Bij 5.1 opnames geeft de geconverteerde binaural opname een nog breder geluidsbeeld. Er bestaat een versie van "Aero" van Jean Michel Jarre omschreven als "Dolby headphone version". Ik geloof dat deze met een dergelijk proces is geconverteerd. Ik vond mijn geconverteerde versie van DVD beter.

Example: Origineel en Converted Binaural
Example2 (Extremer voorbeeld): Origineel en Converted Binaural

Software Download. Updated software Version(7 juli 2019)

Ik heb dit algoritme ook omgezet in een LADSPA filter. Het normale stereo geluid of 5.1 geluid gaat er in, de aangepaste versie voor hoofdtelefoon komt er uit. De windows versie is 32 bits, maar deze werkt ook voor Windows 64 bits. Om te werken in Audacity, plaats de stereotobinaural.dll file in the directory “C:\Program files(x86)\Audacity\Plug_Ins” . Enable het effect in de Effect menu. Het effect is nu zichtbaar als “stereo to binaural”. In Linux kan het deb installatieprogramma worden gedubbelklikt in een filemanager voor installatie.  Enable het effect in de Effect menu. Het effect is nu zichtbaar als “stereo to binaural”. Voor Audacity onder OSX: plaats libstereotoheadphone.so in de directory "Applications/Audacity/Plug-Ins". Enable het effect in de Effect menu.


Updated 11 juli 2018:Dependencies libav-tools and libqt4pas5 removed because not available in modern repository of Linux Mint.

Updated 14 august 2018:(Linux,Windows)Added support for DSF and DFF files (from Super Audio CD's)

Updated 07 juli:(Linux,Windows)Niet alleen ondersteuning voor stereo en 5.1, maar nu ook voor alles daar tussenin.

Update 05 august 2019:Added support for sofalizer from ffmpeg. For experimenting with sofa files. First try, I found ClubFritz1.sofa gives a good result. I tried with ClubFritz6 and ClubFritz11 with gives distortion. I tried dtf_nh2.sofa which gives a result without frequencies below 300Hz. So be careful which sofa files you choose. Solved: problem was with type=time, now use type=freq option.

Update 07 september 2019:added support for opus format, import and export.

 Download dvdtohp3_2_amd64.deb, sofalizer version

Download dvdtohp3_2win64, sofalizer version with all dependencies

Download address for sofa files



Download LADSPA plugin for Windows.


Download LADSPA plugin for Linux 64 bits

Download LADSPA plugin for Linux 32 bits

Download LADSPA plugin for OSX

Download Linux Ubuntu or Mint 64 bits  dvdtohp_3_amd64.deb

Download Linux 64 bits executable dvdtohp_3_amd64

Download Linux Ubuntu or Mint 32 bits dvdtohp_3_i386.deb

Download Linux 32 bits executable dvdtohp_3_i386

Version For Windows (64 bits and 32 bits) with all dependencies


!!!!!!!Als de link naar de windows versie niet werkt download dan vanaf freewarefiles.com (zoek naar DVDtoHP, is oudere versie zonder DFF support en alleen voor stereo en 5.1)


The windows version uses ffmpeg.exe, mplayer.exe, sox.exe, lame.exe and flac.exe. They are all placed in the download file because their locations and versions are more controlable. Downloads and info of the used programs are on the next websites.

Download location for ffmpeg (ffmpeg.exe)

Download location for mplayer.exe (I used the generic version)

A location to download lame.exe

Download location flac.exe

Download location sox

Macintosh Maverick instruction

First download dvdtohpMaverick3.zip 


Unzip zip file, application is in extracted map. With use of Homebrew the dependancies had to be installed. Open Terminal in Maverick, type in Terminal

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

next: type in Terminal

brew tap homebrew/dupes

These 2 lines where necessary for me to install GDB in Maverick for use with Lazarus (Just type in Terminal  now brew install gdb to install GDB). All the dependencies could now easy installed with the same instruction.
brew install libav
brew install mplayer
brew install flac
brew install cdparanoia
brew install sox

CDRipper, GUI of cdparanoia

Image of CDRipper

GUI voor cdparanoia. Met “cddb-tool” van het pakket “abcde” wordt de CD info van http://www.freedb.org/ gehaald. Indien er geen informatie wordt gevonden wordt er naar CD text gezocht met commando regel programma cd-info. CDParanoia heeft wel de mogelijkheid om read-errors weer te geven, maar dit genereert een eindeloze lijst van alle meldingen. Mijn programma vat dit samen tot de serieuze meldingen en een duidelijke positie in de track van de error. Door de resultaten te combineren kan ik nu een CUE bestand genereren met de naam van de CD, artiest en tracknamen in combinatie met het geripte geluidsbestand, gereed voor de CD-tekst van een te branden CD, ondanks dat de originele CD geen CD-tekst had. Als aanvulling nog de mogelijkheid ingebouwd tot compressie naar mp3 bestanden (gebruik makend van LAME pakket) en naar flac bestanden (gebruik makend van flac pakket). Indien de CD in losse tracks worden geript , zal tijdens het rippen van een track de voorgaande track al gelijktijdig worden gecomprimeerd. De gecomprimeerde tracks bevatten natuurlijk de nummerinformatie.

Linux Ubuntu or Mint deb installation file 64 bit Download

Linux Ubuntu or Mint deb installation file 32 bit Download

Calculator iaddi

Klein scherm beelden


Small screen Image1 og iaddiSmall screen image2 of iaddi

Groot scherm beeld

Large screen image iaddi

Iaddi (1+1 in letters) Calculator met tekst invoer, 3 variabelen. Berekent numerieke integratie en numerieke differentiatie. Plot de grafiek van de functie. De android versie heeft geen permissies nodig.Functies: *, / , + , - , ^ ( power of), sin(), cos(), tan, asin, acos, atan, sinh, cosh, tanh, asinh, acosh, atanh, sqr, sqrt, exp, ln, log, abs, rnd, random, rndg (random met Gaussian distribution), cot, csc, sec, acot, acsc, asec, coth, csch, sech, acoth, acsch, asech, sign, round, torad (van degree naar rad), todegr (van rad naar degree).De onder en bovengrens voor integratie en differentiatie kan
worden ingesteld met “start x, end x, start y en end y.Indien deze niet zijn ingesteld worden deze grenzen automatisch ingesteld. Waarschuwing: Integratie kan geen singulariteiten herkennen. Als er een grafiek met een singulariteit wordt getekend moet start y en end y worden ingegeven om y te begrenzen.

Download android version (zipped) iaddi_android

Download Java version (zipped) iaddi_java

Ingezonden brief “Elektuur”

Er is van mij een ingezonden brief geplaatst in “Elektuur” in januari 2001. Deze brief betrof de opname kwaliteit van Cd's, met name over clipping. Op internet trof ik later
ook vertalingen en/of uittreksels aan in Duits,Frans en Engels. Recent tref ik in Duitsland weer verwijzingen aan naar deze brief. Daarom heb ik hier het origineel geplaatst.

Ingezonden brief Elektuur January 2001

Pakweg een jaar geleden stond er in Elektuur een ingezonden stuk over te hard opgenomen cd's. Een oscilloscoop was aangesloten op de uitgang van een cd-speler met de cd 'Oxygen 7-13' van Jean Michel Jarre en hierop was duidelijk te zien dat de golfvorm werd afgekapt doordat de signaalwaarden groter waren dan door de cd weergegeven konden worden. Dit gedrag wordt ook wel clipping genoemd. In de opstelling met oscilloscoop is het helaas onduidelijk wat de invloed is van de cd-speler. Tussen cd en oscilloscoop zit de cd-speler met zijn digitaal filter met oversampling, de digitaal analoog-converter en tot slot het analoge filter. De beste manier om cd's te onderzoeken is om door middel van digitale extractie van een cd, een nummer om te laten zetten in een wave-file (.wave). Op een enkele mogelijke uitleesfout na zal dit een exacte digitale kopie zijn van de cd. Aangezien de huidige cd-burners uitgebreid gebruik maken van deze mogelijkheid, is deze stap geen enkel probleem. De hiermee verkregen wave-file kan hierna door een computerprogramma worden geanalyseerd. Een wave-file bestaat uit een header met daarop volgend de duizenden samplewaarden. Het 16-bits formaat van de cd geeft deze samplewaarden een bereik van -32768 tot 32767. Om deze wave-files nader te kunnen bekijken heb ik een programma geschreven dat deze wave-file kan analyseren. Om te beginnen maakt deze een histogram van de wave-file, Er wordt hierbij bepaald hoe vaak de samplewaarden in de wave-file voorkomen. Dit ziet er uit als figuur 1.

Figure 1

Histogram of good WAV file



De waarden rond de nul komen het meest voor; hoe verder je naar de extremen -32768 en 32767 gaat, hoe minder deze waarden voorkomen. Indien er clipping opgetreden is bij de opname, zullen alle te sterke signalen afgerond worden naar de extremen -32768 en 32767, aldus resulterend in extra pieken aan de uiteinden van de grafiek. Zo kan geconstateerd worden of er clipping optreedt en bij welke waarden (dit zou ook bij andere waarden dan -32768 of 32767 kunnen zijn door verkeerd afgestelde A/D- converters). Vervolgens kan met het programma de golfvorm van de wave-file worden bekeken. Dit scherm heeft een zoekfunctie die zoekt naar de bij het histogram bepaalde clipping waarden. Met dit programma heb ik onder andere "...Baby One More Time" van de Cd "...baby one more time" van Britney Spears bekeken. Deze opname zat overduidelijk vol met clipping maar het histogram gaf het verrassendste resultaat. In figuur 2 is dit histogram afgebeeld.

Figure 2

Histogram of Baby one more time

 Voor de samplewaarde 4 tot en met 515 is weergegeven hoe vaak deze waarde in de wave- file voorkomt. Na iedere twee waarden die meer dan 1000 keer voorkomen is er een waarde die nauwelijks of niet voorkomt. Een dergelijk histogram kan alleen ontstaan indien van een 16-bits opname een met een factor 1,5 versterkte heropname wordt gemaakt. De samplewaarden 1, 2, 3, 4, 5, 6, 7 enz. worden dan mct 1,5 vermenigvuldigd tot 1,5, 3,0, 4,5, 6,0, 7,5, 9,0, 10,5 enz. Vervolgens moet dit weer naar cd-waarden worden geconverteerd (dus afgerond). Dit geeft dan 2, 3, 5, 6, 8, 9, 11 enz. Uit de nieuwe ontstane reeks is iedere derde waarde verdwenen. Uit bestudering van de golfvorm bij plekken met clipping valt verder af te leiden met welke factor de cd te hard is opgenomen. Ik schat dat deze waarde ongeveer 1,5 is. Conclusie: Van een oorspronkelijke mix, die perfect was opgenomen, is een met een factor 1,5 versterkte remix gemaakt, welke op diverse plaatsen clipping vertoont. Het nummer "Gloria, lonely boy" van de cd "Metamorphose" van Jean Michel Jarre is ook onder de loep genomen om te kijken of zijn laatste cd ook vol met clipping zou zitten. Ook deze cd bleek te hard opgenomen. Maar het boeiendste resultaat gaf weer het histogram (figuur 3).

Figure 3

Metamorphose histogram

De kleinste en grootste voorkomende samplewaarden in de opnames waren respectievelijk 32022 en 32021 (0,977 deel van het cd-bereik), Dit waren ook de waarden waarbij clipping optrad. In het histogram is te zien dat elke veertigste waarde een dubbel zo grote piek heeft. Uit de combinatie van deze gegevens kan geconcludeerd worden dat deze cd een remix is van de originele cd-opname. De samplewaarden zijn met 0,97 vermenigvuldigd en vervolgens terug naar cd-formaat geconverteerd. Dit roept de vraag op waarom deze zinloze bewerking op deze opname is uitgevoerd. De enige reden die ik kan bedenken is dat door deze bewerking de uitgever wou verdoezelen dat de opname te luid was opgenomen. Iemand die met een oscilloscoop naar clipping zoekt zal de triggering op het grootst mogelijke signaal afstellen: dus op 99,9% van het maximum mogelijke signaal. Door de remix zal er in dit geval nooit een triggering optreden en de aanwezigheid van clipping zal niet ontdekt worden. Degene die de remix heeft gemaakt wist dus dat er clipping optrad en heeft dit doelbewust proberen te verhullen. De juiste oplossing zou natuurlijk geweest zijn om met behulp van de mastertape een iets verzwakte remix te maken en aldus het clippen te vermijden. Om kwaliteitsverbetering te verkrijgen, is de platenindustrie bezig de sacd te promoten. Ze zouden er beter aan doen dit geknoei bij de opnames aan te pakken. Dit knoeiwerk klinkt ook in super-cd formaat slecht en zorgvuldig opnemen in cd-formaat zal een grotere verbetering opleveren dan overgaan op sacd-formaat.

A. Kappert, Deventer

Aanvulling op brief

Sommige mensen denken dat deze resultaten worden veroorzaakt door compressie. Maar bij het maken van cd's betekent het gebruik van compressie het versterken van de zwakke passages, het versterken van de sterke passages is verboden omdat deze al aan hun limiet zitten. Met een geluidsbewerkingsprogramma kan de golfvorm worden bekeken. Hier volgt het resultaat gemaakt met het meegeleverde programma van “...Baby one more time” op de positie 114.885 sec.

Figure 4

Oscilloscope of Baby one more time

Iedere pixel naar rechts is een nieuwe sample. Een van de kanalen vertoont duidelijk clipping over een grote lengte en in hevige mate. De golfvorm is hierdoor duidelijk aangetast. Compressie veranderd wel de envelop van een signaal maar zal de golfvorm niet aantasten. Ruim voor het te grote signaal zal het volume langzaam worden teruggedraaid om te voorkomen dat er clipping ontstaat. Er kan een schatting worden gemaakt van de grootte van het oorspronkelijke signaal, deze schat ik 1,5 maal zo groot. Blijft over de vraag waarom dit signaal is versterkt. Het schijnt dat bij vergelijking van geluidskwaliteit bij Hifi signalen, de eerste voorkeur uitgaat naar het sterkste signaal. Ook trekken bij radiouitzendingen de nummers met de grootste geluidsterkte de meeste aandacht.

Figure 5

J.M.Jarre oscilloscope image

Ter aanvulling nog in figuur 5 “oxygen 7”van J.M. Jarre op 27.37 seconden. Hier wordt duidelijk de “zaagtand” afgekapt, hierdoor gaan een hoop harmonischen in het geluid verloren.. Bij “Methamorphoses” bleek het signaal met 2.5% verzwakt. Het schijnt dat cd masteringapparatuur tegen te sterk oversturing is beveiligd. Om deze beveiliging te omzeilen is het nodig om het signaal te verzwakken, het is dan dus wel bekend dat er clipping optreedt.

Last Version download (with APE and FLAC file support,20 November 2016)

To Download ( updated ) analyse program (cdwavanalyse,windows 7, 32bits)

To Download ( updated ) analyse program (cdwavanalyse,linux Ubuntu or Mint, 64 bits deb)

To Download ( updated ) analyse program (cdwavanalyse,linux Ubuntu or Mint, 32 bits deb)


Old windows version with only wav file support
To Download  analyse program (cdwavanalyse,windows, 32bits)

Mandelbrot fractals

Image of Fractal

Dit programma tekent Mandelbrot fractals (Appelmannetje). Met linker muis klik kan er ingezoomd worden op het complexe vlak, met rechter muis klik kan er uitgezoomd worden. Dit kan tot met factor 1e16.

Download Windows

Download Linux Ubuntu 64 bits

Download Linux Ubuntu 32 bits

Om Python script/programmeertaal uit te proberen, heb ik een Python versie van het Mandelbrot programma gemaakt. Hierbij gebruikte ik numpy module, Pil (of eigenlijk de Pillow fork) voor opbouwen van de afbeelding en PyInstaller voor creëren van een executable in een file. De beste versie die ik hier mee wist te creëren was een factor twee trager dan de versie die ik met Lazarus (Free Pascal) wist te bouwen. Maar de python versie gebruikte multiprocessing, dus eigenlijk was deze versie een factor 6 trager. De pyinstaller had bovendien moeite om in windows een executable te creëren. De python file had een aanvulling om de juiste spawn versie op te starten.
    Een ander probleem was de onbekendheid van Python met float80 (in Pascal het type extended), het floating point type waar de intel processor intern mee werkt. Ik moest hiervoor type float128 (in Linux) gebruiken (terwijl de precisie gewoon de float80 bleef van de intel processor). In Windows werkte dit dan weer niet, hier moest ik float64 gebruiken. Een raar gebruik van types binnen numpy. Dit schept onduidelijkheid over wat je moet gebruiken en wat voor precisie daadwerkelijk wordt gebruikt.

Download Windows Python version


Download Python Linux version



picture of emailadres