Profiel van André Kappert weergeven
Het probleem met hoofdtelefoons
Soort Mifare Classic tool voor uFR Classic
Geluidsopnames 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 linker luidspreker 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.
Figure 1: Virtueel beeld opgebouwd uit geluidsbeeld speakers
Figure 2: Hoe een speaker opname klinkt via hoofdtelefoon
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.
Figuur 3: Voorbeeld bestaande uit roze ruis
Figuur 4:Met stereotobinaural LADSPA bewerkte voorbeeld
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 afgeleid 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.
De Linux versie werkt met het van Ubuntu bekende .deb automatisch installatie programma.
Voor Windows en Linux is er nu ook een VST plugin (en een LADSPA filter voor Linux). 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.
De surroundtoheadphone
versie is moeilijker. Creëer in Ardour een 5 kanalen audio bus.
Plaats een surroundtoheadphone filter in deze bus. Deze plugin
heeft 5 input kanalen en 2 output kanalen. Rechts click het filter
en selecteer “Pin connections”. Activeer “Manual Config” en
verminder “Audio out” naar 2 kanalen. De output van deze bus is nu
binaural. De 5 input kanalen representeren de luidspreker posities
van links naar rechts. Met de “routing grid” van de output van de
instrumenten kun je deze vebinden met de verschillende kanalen van
de 5 kanalen bus. Ongeveer hetzelfde met de plugin surroundLocation
(een panning plugin). Creëer een 1 kanaal bus. Installeer
surroundLocation in deze bus. Deze plugin heeft 1 input kanaal en 5
output kanalen. Rechts click het filter en selecteer “Pin
connections”. Activeer “Manual Config” en vermeerder “Audio out”
naar 5 kanalen. De output van deze bus is nu surround. Bypass de
standaard panning (de cirkel) en verbind de output van de bus met
de surroundtoheadphone (5 kanalen) bus.
Download VST plugin for Windows 7,8 and 10
Download LADSPA plugin and VST Plugin for Linux
DVDtoHP is bedoeld voor conversie van audio naar binaural (en heeft een tab 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.
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.
De eerste tab van het programma start de conversie.Een button voor conversie van audio bestanden naar binaural, een button voor conversie van multichannel of ongebruikelijke format audi naar normaal stereo. Deze knoppen starten 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.
Deze knoppen vragen eerst naar de input audio file (meerdere files te selecteren), 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.
De tweede tab gebruikt sofalizer van ffmpeg voor conversie naar binaural.
De derde tab toont een scherm met een knop, die een scherm start 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. Meestal kan het programma de locatie van de DVD automatisch vinden.
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).
De vierde tab geeft de mogelijkheid een eigen HRTF te genereren. Leken kunnen gewoon de default HRTF gebruiken.
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 checkbox 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.
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): Geluid beweegt tussen speakers wat op
hoofdtelefoon eigenaardig klinkt, vergelijk origineel met converted
version
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.
Update 05 november 2019:Open dialog has now support for multiple file selection. Multiple files or all files in map can now converted in one batch.
Update 01 January 2020 Created OS X version. Tested in Mojave.
Update 11 July 2020: Deb installation wouldn’t install on last Mint version (20 and probably Ubuntu20). There was a problem with libdvdread4 dependencies (moved to libdvdread7). Updated dvdtohp3_4_1 Linux versions.
Update 21 May 2021:Added audio extraction from files like mp4, vob, webm and iso. Version 3.5
Update 1 July 2021:More stable version 3.5.2
Update 16 August 2021: Command line interface (only the conversion part)
Update 09 October 2022:3.5.3 version, Length of audiostreams of DVD is shown in DVD ripping section.
Update 13 Sep. 2024 :3.5.4 solution for the error 'No supported audio available' for wav stereo files.
Download address for sofa files
Download dvdtohp3.5.3 Windows and Linux version with all dependencies
Download dvdtohp3_5_2 Windows, Linux and OSX version with all dependencies
Download dvdtohp3.5.4_amd64.deb GUI version.
Download dvdtohp3.5.3_amd64.deb GUI version.
Download dvdtohp3_5_2_amd64.deb GUI version.
Download dvdtohp3_5_2_OSX_x86_64.zip
Download dvdtohpcli1_1_1_amd64.deb CLI Linux version (usage: dvdtohpcli –help).
Portable Application Description (PAD), dvdtohp.xml
Download LADSPA plugin for Windows.
Download LADSPA plugin for Linux 64 bits
De 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
De OS X version uses ffmpeg, mplayer. 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)
Met behulp van mfcuk, mfoc en nfc-mfclassic kun je kopieën maken van Mifare Classic 1k kaarten. Zelfs als de keys niet bekend zijn. Deze programma's maken gebruik van een ontwerpfout in de kaart.
Met de ufr Classic kan dit niet. Een tekortkoming. Een simpele kopie van een Mifare kaart is onmogelijk als je de sleutels/keys niet kent. Maar Mifare classic tools (android) gebruikt een andere methode Het gebruikt niet de fout in het ontwerp, maar de luiheid van de gebruikers. De 6 bytes keys geven 2^48 mogelijkheden, waarvan de gebruikers er maar enkele gebruiken. Gewoon de keys uit een keylist gebruiken, tot je de passende vind. Mijn programma gebruikt deze methode.
Het programma kan niet de manufacturer block/UID kopiëren. Dat is een beperking van de device of driver. En het zit eigenlijk ook niet in de specificaties van de Mifare kaart. Het is een hack. Maar het programma kan wel controleren of de UID van de kaart te veranderen is. Dat zit ook niet in de specificaties. En Mifare Classic tool heeft hier ook problemen mee.
Als je toch een dergelijke kopie nodig hebt. Dit programma kan wel de inhoud (met manufacturer block/UID) naar schrijf kopiëren in het formaat dat mfcuk, mfoc en nfc-mfclassic gebruikt.
En dan heb je een speciale ‘Magic’ Chinese Mifare kaart nodig.
En bijv. de DL533N device van D-Logic (met programma nfc-mfclassic).
Linux: Het programma verwacht de libuFCoder-x86_64.so driver op locatie '/usr/local/lib/libuFCoder-x86_64.so'. Waar ook mijn FTDI drivers staan. D-Logic is wat vaag, over de directory waar de driver hoort. Je kan er een kopie plaatsen of het programma vraagt iedere keer de locatie.
Windows: libuFCoder-x86_64.dll driver is en hoort in de zelfde directory als het programma.
Last update 23 may 2024
Download linux version ufr_Bold 0.5.0
Download Windows version ufr_Bold 0.5.0
Download Windows and Linux version ufr_Bold 0.5.0
AppImage versie, zou moeten werken zonder iets te blacklisten of driver te installeren. Je moet wel lid zijn van de dialout group.
Het is getest in Linux Mint Mate virualbox version 20.3 en 22.1 ( en in een normale installatie van versie 22.1).
Vreemde situatie deed zich voor dat de USB3 controller van de virtual machine ingesteld moest zijn op xHCI. Met instelling op OHCI+EHCI werkte het niet.
ufrbold-linux-x86_64.AppImage Linux version ufr_Bold 0.5.0
Portable Application Description (PAD), ufrbold.xml
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
Klein scherm beelden
Groot scherm beeld
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.
Update 17 november 2022:gecheckt voor laatste versie android.
Download android version iaddi_android
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.
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
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
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
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
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
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
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.
To Download ( updated ) analyse program (cdwavanalyse,windows 7, 32bits)
To Download ( updated ) analyse program (cdwavanalyse,linux Ubuntu or Mint, 64 bits deb)
Old windows version with only wav file support
To Download analyse program (cdwavanalyse,windows, 32bits)
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.
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.