Software : Wave Generator (Versie 1-2 2005-0101)
De Wave Generator is een software programma'tje waarmee je .WAV bestanden kunt maken met bepaalde golfvormen.
In de versies 1.x zijn de volgende golfvormen beschikbaar: Sinus, Blokgolf, Witte Ruis, Sinus-sweep -een sinus toon met een oplopende frequentie.
De Wave Generator genereert .WAV bestanden die je met audio- of multi-media software kunt afspelen. De werking van het programma is volstrekt onafhankelijk van je geluidskaart, maar bij het weergeven speelt je geluidskaart natuurlijk een uiterst belangrijke rol.
De 44.1 kHz bestanden kunnen op een muziek CD gebrand worden voor direct gebruik in audio apparatuur.
Je kunt er wat interessante experimenten mee doen. Zoals het "doorfluiten" van je hele installatie, en eens horen waar het in de kamer of in de luidsprekers gaat rammelen.
Voor sommige mensen is het misschien interessant om eens te horen hoe hoog of laag diverse frequenties (toonhoogten) nu eigenlijk wel klinken.
Verder kan deze generator een signaalbron zijn voor diverse technische metingen aan audio apparatuur. Daarover later meer.
Systeem vereisten:
Microsoft Windows 2000 of XP (Waarschijnlijk werkt het ook op oudere versies,
maar dat is niet getest. Ik ontvang graag rapporten daarover)
Installatie: Er zijn twee mogelijkheden:
Maak een nieuwe map aan voor dit doel. Unzip
het bestand met de EXE en zet WavGen.exe in die map. Maak evt.
een snelkoppeling naar het buroblad. Dat is alles. Het programma doet niets in
de registry of elders in je computer.
Deze methode werkt alleen als je een eerdere versie van WaveGenerator
geinstalleerd had, of als je de runtime omgeving voor MS Visual Basic
geinstalleerd hebt. Doorgaans heb je die als je Visual Studio geinstalleerd
hebt.
Download het installatie pakket. Unzip het in een tijdelijke map en dubbelklik daar op install.exe. Je kunt nog kiezen waar je het programma geinstalleerd wilt hebben.
Als je het opgestart hebt ziet het er zo uit:

In het eerste vak kun je een keuze maken voor de golfvorm: Pure Sinus, Blokgolf, Witte ruis of een Sinus die van toonhoogte verandert (sweep)
In het vak daaronder kun je de sample frequentie kiezen. Het meest gebruikt is 44.1 van de muziek CD. 32 en 48 komen voor bij DAT recorders, 96 bij DVD en 192 is vergelijkbaar met SACD.
In de middelste kolom kun je bovenaan de gewenste frequentie instellen. In de Sweep-mode is dat de start frequentie.
Het "sweep" veld is alleen actief in de sweep mode. Je kunt hier op drie manieren instellen hoe de sweep moet lopen. Vanaf de startfrequentie in Decades (dus steeds een factor 10 omhoog), in Octaven (dus steeds een factor 2) of je geeft simpelweg de eindfrequentie op. Je mag ook nog opgeven dat de sweep van hoog naar laag moet gaan.
Als je in de sweep mode zit en je wijzigt de startfrequentie moet je de eindfrequentie nog even controleren en evt. opnieuw
Onderaan geef je de totale tijd op die het afspelen moet duren.
In de rechter kolom kun je de amplitude instellen, in decibel of in D/A converter eenheden. Kijk daarvoor in de paragraaf over schaling.
In het Left/Right vak kun je instellen of je alleen links, alleen rechts, beide in fase of beide in tegenfase wilt hebben. De optie onafhankelijk (independent) werkt alleen bij witte ruis.
Met de knop "Make File" start je het genereren van het bestand. De knop vertelt van te voren hoe groot het bestand zal worden.
De onderste regel laat zien hoe de bestandsnaam wordt. Je vindt hierin alle relevante instellingen terug.
Tijdens het werk zie je een voortgangs balk, en je kunt het proces tussentijds stoppen. Het reeds aangemaakte bestand wordt niet verwijderd.

Er kunnen waarschuwings berichten komen:

Hier is de hoogste frequentie van de sweep voorbij de z.g. Nyquist frequentie, dat is de halve sample frequentie. Er treedt dan aliassing op.

Als hierboven, maar dan voor de constante frequentie.

De (start) frequentie moet groter dan nul zijn.

De waarde voor de eindfrequentie mag niet negatief zijn.

Hier is de amplitude instelling zo groot dat er oversturing van het 16 bit audio bereik optreedt. Je mag dat doen, maar er zal aliassing optreden, want zulke oversturing produceert harmonischen die boven de Nyquist frequentie liggen.

De amplitude mag ook niet negatief zijn. Het wordt voor je op +1 gezet

Als je een speelduur opgeeft van meer dan een uur of zo dan duurt het genereren van het bestand ook erg lang. Je kunt het zonder problemen doen, maar ga in die tussentijd maar een eindje wandelen. Goed voor de benen.
Verschillende geluidskaarten geven verschillende line-nivo's af. Als je een goede calibratie wilt moet je met een oscilloscope het uitgangs nivo meten en die gegevens vastleggen.
Bij
de sinus en de sweep komt 0 dB overeen met een uitsturing van + tot - 32000
eenheden. Dat is praktisch het volledige bereik van 16 bit audio (-32768 tot
+ 32767). Voor geringere uitsturing moet je een kleiner getal nemen, of een
negatieve waarde voor het aantal dB's.
Bij
de blokgolf is de waarde van de platte bovenkant op 0.707 van de opgegeven
uitsturing gezet. Dat resulteert er in dat de RMS- of effectieve waarde van
de blokgolf en de sinus gelijk zijn. Bovendien is er bij volle
uitsturing nog wat ruimte over voor de "oortjes" en
"rinkeltjes" aan de blokgolf. Die oortjes duiden hier niet op
opslingering of instabiliteit, zoals we dat bij het meten aan analoge
circuits gewend zijn. Het is een direct gevolg van de zeer steile anti-alias
filtering die hier toegepast is. (In feite heb ik geen filter gebruikt,
maar ik heb de blokgolf opgebouwd uit zuivere sinussen, de grondfrequentie
en alle oneven harmonischen, tot aan de Nyquist frequentie. Dat heeft in dit
geval het zelfde effect als extreem steil filteren.)
Het witte ruis signaal heeft ook een effectieve waarde van 0.707 bij 0 dB uitsturing. Helaas zijn de uiterste pieken van het ruissignaal aanzienlijk groter dan de effectieve waarde. In dit geval 6 x zo hoog. Om in het geheel geen oversturing te krijgen moet je het signaal kleiner dan 5300 eenheden maken, of minder dan -15 dB. Anderszijds, die maximale pieken komen maar sporadisch voor en dan zul je er weinig van merken. Met de helft van de maxiamle uitsturing zit je al aardig goed
Beperkingen
Alles
gaat via .WAV bestanden en de audio-speler die je hebt. Er is geen directe
aansturing van de geluidskaart, en ook andere audioformaten dan .WAV worden
niet ondersteund. (maar daarvoor bestaan wel conversie programma's. Het is
mij niet bekend hoe die omgaan met re-sampling e.d.)
Ik heb dit zo gedaan omdat zo het programma onafhankelijk is van de
gebruikte hardware, en ik ook niet weet hoe ik deze "kaart" direct
kan programmeren. (Als iemand een API weet met een goede
gebruiksaanwijzing dan is 'ie welkom)
De sweep mode kent uitsluitend een logarithmische frequentie schaal.
Er is nog geen ondersteuning voor de 24 bit mogelijkheden van de Soundblaster Audigy 2 NX (of equivalent)
Plannen (in deze volgorde)
Ook signalen kunnen opnemen, synchroon met het afspelen van test signalen.
Amplitude/fase analyse. I.h.b. i.v.m. metingen aan luidsprekers: stroom, spanning etc.
Spectrum analyse.
24 bit modes uitproberen en indien bruikbaar implementeren.
versie 1.0:
Bij het wijzigen
van sommige instellingen komen er foutmeldingen als je tussentijds een niet
toegestane waarde in de tekstbox hebt staan. Dit is hinderlijk, maar je kunt
het overkomen door de getallen een beetje slim te wijzigen. Dit is het
eerste gebrek dat ik zal verbeteren.
Dit probleem is opgelost in versie 1.1
Als je een file (opnieuw) wilt aanmaken terwijl die nog bezet is door bijv. een audio-speler, op dezelfde computer of via een netwerk, dan crasht het programma.
Als
je in de sweep mode heen-en-weer-schakelt tussen de "Dec",
"Oct" en "End" modes dan kunnen er kleine afwijkingen in
de eindfrequentie optreden t.g.v. afrondingsfouten bij de herberekeningen.
Als je zeker wilt zijn van de juiste waarde, kies dan eerst de mode en dan
pas de eindwaarde.
Dit is opgelost in versie 1.2
Als je het programma op een netwerk drive draait wordt het vreselijk traag. Maak de bestanden op de locale computer en copieer ze daarna naar de netwerk bestemming.
In sommige gevallen komt het programma met een foutmelding dat er een (dll of ocx) bestand ontbreekt of niet goed geregistreerd is. Probeer in dat geval het installatie pakket. Ik heb ook het omgekeerde wel gezien; dat het installatie pakket niet werkte, maar dat de executable het wel deed. In beide gevallen kan ik je niet van dienst zijn met een oplossing. De schuld ligt bij Wim Poortjes die z'n huiswerk niet goed gemaakt heeft.
Als je nieuwe problemen tegen komt of een oplossing weet voor een bestaand (installatie) probleem dan ontvang ik daar graag bericht over
(tot nog toe, en dat is nog niet zoveel)
Ik heb dit programma gemaakt om met mijn "Creative Soundblaster Audigy 2 NX" wat meet-en luister experimenten te doen, vooral gericht op frequenties boven de 20 kHz. Het was dus nogal een teleurstelling om te moeten constateren dat de weergave van 192 kHz .WAV bestanden weliswaar gaat, maar ze worden wel eerst terug gesampled naar 48 kHz. Dit kan aan de gebruikte player liggen (Ik gebruikte de F3- player van de TotalCommander via de USB driver van de SB; de Microsoft -players die ik geprobeerd heb maakten er helemaal een potje van) maar ik heb nog geen kans gezien om echt 192 kHz effectieve sample frequentie waar te nemen.
De 96 kHz mode gaat wel goed tot bijna 50 kHz, en dat is ook zo te verwachten. Ik heb wel wat merkwaardige hobbels in de frequentie karakteristiek gezien; een halve dB of zo bij een paar honderd herz. Dit bevreemdt me zeer, want er zijn nauwelijks redenen waarom een digitaal of analoog filter bij die frequenties een afwijking zou vertonen.
Versie 1.0: Eerste release 2004-02-04. (niet meer beschikbaar)
Versie 1.1: release 2004-04-17 (niet meer beschikbaar))
Versie 1.2: release 2005-01-01 (huidige download)
Dit programma, of een nieuwere versie ervan kan worden gevonden op www.breem.nl Ga daar naar de download pagina.