Hints collection


About waveforms other than sine waves

  • Up to V1.40, periodic waveforms other than sine waves simply produced graphical waveforms (for example, binary waveforms in the case of rectangular waves) and output them as they were.
    These are useful as tests and modulated signals for hardware and software, but because they contain components above the sampling frequency / 2 (Nyquist frequency), there is aliasing, and for correct signaling to be used as a voice signal (listening) There was no.

    Since V1.50 it is now possible to generate band limited signal, so please use this when using as audio signal.

    Also, since the output filter , which generates a signal by oversampling, has also been added, as with the above waveforms where loopbacks fit in the band cut by decimation It is also possible to create a band limited to the band.
    (Although it is faster to use the band-limited waveform itself from the beginning)

    Supplement:
    Even for graphical waveforms, if you set the number of samples with an even period and the number of samples to 2 N as described below, a spectrum without aliasing can be obtained for the time being, but this is also strictly a correct signal There is none.

    For example, when a rectangular wave of 8 sample periods, that is, 6000 Hz is created at a sampling frequency of 48 kHz, the spectrum shows a fundamental wave of 6 kHz And the third harmonic 18 kHz, and there seems to be no alias.
    However, at this time, the harmonic components are odd multiples of 18 kHz, 30 kHz, 42 kHz, 54 kHz .... However, 30 kHz is 18 kHz in return - 30 = 18), 42 kHz likewise becomes 6 kHz (48 - 42 = 6) ... ... all overlaps the frequency seen by the spectrumer.
    Therefore, since the component of the third harmonic 18 kHz originally has an amplitude of 1/3 of the fundamental wave 6 kHz, it should not have become the level difference - 9.54 dB, but actually It is -0.68 dB and -8.33 dB when making a rectangular wave with an amplitude of -3 dB, which shows that the level difference is -7.65 dB, which is not a correctly band-limited rectangular wave.

Sampling frequency conversion (interpolation) of Wave file using output filter oversampling function

  • By using output filters oversampling file creation function, it is only x2, x4, x8, x16, but sampling frequency conversion of the wave file (interpolation You can do it.
    For details, please refer to the upper link destination.

    48 kHz before conversion



384 kHz after x8 conversion

About pronunciation latency

  • filter length +1 in the filter settings window becomes the basic buffer length for internal operation It is getting.

    For example, when filter length 4095, that is, buffer length 4096 at 48000 Hz sampling, one block operation of the filter is 4096/48000 It will be updated every approximately 85 ms.

    In other words, internal waveform updates are done at this time interval.
    (However, the actual waveform display is limited to about 10 fps at the maximum, and if it is faster than that, the display will be thinned out in order to reduce the drawing load)

    When shortening the filter length and setting the buffer length to 1024, the response time becomes as fast as about 21 ms and response such as the characteristic display at the time of changing the filter characteristics becomes faster, but the actual pronunciation latency is different from this , It is fixed by taking multiple buffers so that it is usually at least about 0.5 seconds. (To prevent skipping)

    Therefore, the response of the change in sound generation when turning the mouse wheel is always about 0.5 seconds, so even if the filter length is shortened, this response time does not become faster.

    If you want to shorten the actual pronunciation latency, after ending it once, add the following description to any position in the Misc section in WG.INI and re-execute.

    [Misc]
    PlayBuffer_ms = 100

    Set it to the extent that sound skipping does not occur in ms. (10 to 2000)
    (Make sure to skip if you move the window or activate another software)

    Note 1:
    Conversely, if the sampling frequency is 22050 Hz and the filter length is set to 16384, the internal buffer will be 0.74 seconds in length, in which case the pronunciation buffer will also be taken as much, so the pronunciation latency will also be the lowest It will be 0.74 seconds.
    (It will be 0.74 seconds even if it is set to less than this with PlayBuffer_ms.)

    Note 2:
    When the sampling frequency is high and the internal buffer length becomes short, it is adjusted not to be less than 20 ms.
    For example, when the buffer length is 1024 at 96000 Hz sampling, the response time is 1024/96000 = 10.7 ms, which is less than 20 ms. In this case It is doubled and changed to 2048.
    (However, because the waveform display will remain 1024 samples to maintain consistency with others, there are no apparent changes in appearance in particular)

In order to eliminate cropping error during FFT with waveform other than sine wave

  • In order to eliminate error due to data extraction at observation by a spectrum analyzer with a periodic waveform other than a sine wave such as a rectangular wave, extended setting function of frequency setting , It is not enough to just set the frequency to an integral multiple of the minimum frequency resolution of the FFT.
    In order to do so, the number of samples in the positive part and the negative part of the waveform must be an integer and equal, but in most cases it will not.

    In order to do so, the frequency is set to the minimum frequency resolution of FFT Set to 2 N times power.
    That is, conversely, if the number of samples as a period is increased to "N" power of "2" It is good to set it. (It is preset in the cycle combo box.)

    For example, the frequency (44100 / number of samples) in the case of sampling frequency 44100 Hz is
    Periodical sample number frequency
    1024: 43.07 Hz
    256: 172.27 Hz
    64: 689.06 Hz
    16: 2756.25 Hz
    And so on.

About noise

  • Both white noise, pink noise, M series noise, Wave 1 ~ Wave 8 output the same timing signals (same time series).
    For example, both Wave 1 and Wave 2 are set to the same white noise or pink noise, and Wave 1 When outputting to Lch and Wave 2 to Rch, both output signals are the same and become completely monaural signals.

  • White noise is _lrand (cycle 2 ^ 64 multiplication congruential method) It is a normal random number generated by the Box-Muller method from the uniform random number of
    As a measure to secure power to some extent and deviation It is normalized by multiplying the limiter by + -3.5.
    (The limit rate is applied is about 0.023%)

  • Pink noise is -10 dB / dec for white noise (-3 dB / oct) filter.
    In WaveGene, this filter is performed by FFT filtering, and in order to generate it in real time, it requires more CPU power than other signals.

    Although it is not worried at this time in the CPU, if the sound is interrupted, please write it to a wave file once and then play it with another Wave file playback software.
    (From V1.40, it can be generated by reading to user waveform)
    If you really want to output from a sound device in real time, Stereo It may be able to improve by changing from Mono to Sampling Frequency.
    (Depending on the operating environment, generally Pentium It seems that it will not sever if 133 ~ 166 MHz or more)

  • M series noise is the cycle 2 ^ 32 - 1.

  • * Dither
    Set one wave to noise, for example in the case of 16 bit amplitude You can also use it as dither by setting it at around -0.5 dB or "quot; value " with the other wave.

About internal calculation accuracy

  • All real operations including FFT are double (64 bit floating point) I am doing it.
    Computation and mixing are calculated by double, and finally It is converted (rounded) to 32, 24, 16 bit or 8 bit.
    Note that the integral parts are optimal integers respectively.

About DC component

  • Since it became possible to add an offset independently from V1.10, it became very meaningless, but in a waveform that can set the frequency, By setting " zero ", it is possible to add direct current to the output by the amplitude value at that time.
    (Values may be positive or negative)

Inversion (reverse phase) output method

    • Especially, there is no button etc for polarity reversal, but when the unit is other than dB, setting the "negative" value as the amplitude enables you to invert the Wave output.
      In the case of dB, you can invert it by changing it to a value or% and then adding a '-' at the beginning.
      Example: When you want to output white noise with opposite left and right phases
      Both Wave 1 and Wave 2 are set to white noise, the output channel is set to Lch for Wave 1, Rch for Wave 2, and set the amplitude to the same value and make only one of them "negative".
      Waveforms other than noise are apparently apparent if the phase setting of Wave 1 is set to 180°.
      However, this method can be used to make exactly opposite phases.

About level over of output signal

    • In the case of level over, the over level value is displayed as it is with the background as " red " The actual output signal of the current format is the maximum value in the current format (at the time of 16 bits - 32768, 32767, It is designed to clip with 8-bit when -128, 127).
      Of course the signal at that time is distorted, it is different if you intend, but in general you need to make each setting to avoid level over.

      * Even if the level display is 0.0 dB, if the background is "red", it is still clipping. (← 0.04 dB over)

About the name of the output file

    • Wave The name displayed in the dialog box when saving each of the output file and the setting parameter file is to inherit the name added at the time of saving first either to the other by changing only the file extension It is.

Sweep speed in frequency sweep

    • When you observe the frequency characteristics using a frequency sweep in combination with a spectrum analyzer like the sister software WaveSpectra, the faster the sweep speed, the lower the value than the original value due to the influence of the change speed.
      Especially in the Log sweep, the higher the frequency, the faster the change speed, the lower the graph.
      If using a linear sweep instead of a Log sweep, the drop will be constant.
      For more information, please see the help of WaveSpectra.

About repetitive frequency sweep using frequency modulation

    • The original sweep by the frequency setting bar sweep function,manual sweep with mouse wheel?
      However, it is also possible to output repeated sweeps using the frequency modulation function.
      (From * V1.40, it is now possible to output repeated sweeps simply by outputting a single sweep to a user waveform after outputting it to a Wave file etc.)

By choosing FM in the modulation, the frequency f of Wave 1 and the modulation wave Wave 3 (Wave 1) are multiplied by the expression below the lower and upper frequencies f 1 and f 2 of the frequency range to be swept The sweep can be repeated in that range by obtaining the amplitude a of the waveband, selecting the sawtooth wave as the type of Wave 3, and setting the reciprocal of the repetition period as the frequency of Wave 3.

* When changing from frequency f1 to f2 (here, f1 < f2), the set frequency f of Wave 1 is calculated as follows:
f = (f2 + f1) / 2 [Hz]
* The amplitude a of Wave 3, which determines the degree of modulation, is set by%, and
a = (f2 - f1) / (f2 + f1) * 100 [%]

(Example 1) When repeating sweep with 2 second period from 1000 Hz to 2000 Hz
As the frequency of Wave 1, (1000 + 2000) / 2 = 1500 Hz set
Set the amplitude of Wave 3 as (2000 - 1000) / (1000 + 2000) * 100 = 33.333%
Set 1/2 = 0.5 Hz as the frequency of Wave 3
Set the type of Wave 3 to sawtooth wave

(Example 2) Case of repeating sweep with 10 second cycle from 20 Hz to 20000 Hz
As the frequency of Wave 1, (20 + 20000) / 2 = Set 10010 Hz
Set the amplitude of Wave 3 as (20000 - 20) / (20 + 20000) * 100 = 99.8%
Set 1/10 = 0.1 Hz as the frequency of Wave 3
Set the type of Wave 3 to sawtooth wave

When choosing a sawtooth wave for Wave 3, it becomes a linear sweep.

About temporarily stopping waveform display and prohibiting clearing of waveform display at tone generation stop

  • Usually, the waveform displayed on the waveform display section is cleared at the same time when you stop the sound by pressing the stop button, but if you stop while holding down the Ctrl key, the waveform is not cleared and the display is stopped You can do it.
  • Furthermore, from V1.50, it is now possible to pause the waveform display at any time while holding down the Ctrl key.
  • Also, when you first start, press [Ctrl] Output to Sound Device button Starting while holding down the key, you can display the waveform of the starting point. (Hold down the Ctrl key as needed)
    It is useful when you want to temporarily stop the waveform for confirmation, for example when you make complex settings.

About customizing the waveform display color

  • Customization by dialog etc. can not be done, but still it is You can customize WG.INI to an arbitrary display color by directly editing it with an editor.
    In Windows color notation (hexadecimal), " BGR " in this order.

Attention when using simultaneous with the sister software WaveSpectra

  • In case of simultaneous use, the output of WaveGene is interrupted WaveSpectra's display may be jerky.
    Regarding sound interruption, if you try to activate WaveGene, you think that it will be uninterrupted for the time being, but for stable use, WaveSpectra In the setting on the side, "display interval", "quiet time" To 0 other than 0.
    For more information, please see the help of WaveSpectra.

About multi-client support of ASIO driver

  • When using with the sister software WaveSpectra at the same time, when using both ASIO drivers of the same device, it is necessary for the driver to support multi-client (and multi stream?).
    For more information, please see the help of WaveSpectra.

About error when using MME driver

  • Depending on the embedded audio codec, Wave There seems to be a case that it hangs up with an error when format listing is done with Mapper.

    In that case, do not use that CODEC, or if you can not do so, WG.INI In the [Misc] section of the page, " Notepad " For example,

    Use_WF_DIRECT = 1

    Add the line and re-execute it, the device will be opened with the WAVE_FORMAT_DIRECT flag, so please try to avoid errors.
    (Please be aware that MME can not be used on Windows Me, 98/95)

Created with the Personal Edition of HelpNDoc: Free EPub producer