Daqarta for DOS Contents



Free Registration

Contact Us
Daqarta for DOS
Data AcQuisition And Real-Time Analysis
Shareware for Legacy Systems

From the Daqarta for DOS Help system:



This ESS driver can generate test signals using the Yamaha OPL3 stereo music synthesizer built into the ESS chipset, or installed as an option with the ES688.

The OPL3 uses an FM technique which has been held in low regard for music synthesis, especially when compared to the newer "wavetable" methods, because the sounds it can produce are "too limited". But it can generate low- to mid-frequency audio sine waves at least as well as a typical laboratory function generator (about 1% distortion or -40 dB), suitable for many experiments. And although not really designed to do so, it can act as a fairly good source of random noise. (However, the ESS implementation is not as good as a true OPL3 chip for this.)


The output of boards using the ESS chipset are AC coupled, which means that there is series capacitor to block internal DC voltages. The output must drive a resistive load in order to allow the capacitor to charge properly.

If you will be feeding the output to an external amplifier or other device which may have a high input impedance, you should provide a load of 1000 to 10000 ohms in parallel with the board output. Failure to do this may result in a DC level of several Volts at the sound card output, and if that is amplified it could result in serious damage to the external amplifier and any attached speakers or equipment.


This is a "master" On / Off control for both output channels. If neither individual channel is active, this will have no effect. To produce an output sound, you must set this to On, set the appropriate channel Output to On, Burst, or Gap, and set the desired Level for that channel.

This operates the same OPL3 internal gating circuits used by the individual channels, which means that setting this to Off can attenuate the output signal by only about 68 dB below that channel's Level setting. If you need more attenuation, set the individual channel Level controls to Off as well.


When this option is set to Norm, the signal generated by the Left channel is sent to the Left output of the board, and the Right goes to the Right. Swap just sends the signals to the opposite outputs. It doesn't swap the titles on the respective channel menus, however... They refer to the actual synthesizer channels, not the board outputs.


In the output switching options below, the L and R letters refer to the Left and Right synthesizer channels in Norm mode, but the opposite in Swap mode.

The positions on the left or right side of the option text indicates which output receives the channel. Where only one position is in use, only that side's output is active.

L R:

When this option is selected, each synthesizer channel goes to a separate board output. If the Norm/Swap option is a Norm, this will give the normal stereo "what you see is what you get" from the Left and Right channel menus. In Swap mode, "what you see it the opposite of what you get". It's still two different channels, just going to different outputs.

L L:

Here the Left synthesizer channel goes to BOTH outputs. If Swap is active, however, then the RIGHT sythesizer channel goes to both outputs.

R R:

The Right synthesizer goes to BOTH outputs in Norm mode, and the Left goes to both in Swap mode.


Only the Left output is active. In Norm mode, this will receive the Left synthesizer channel, and in Swap mode it will receive the Right channel.


Only the Right output is active. In Norm mode, this will receive the Right synthesizer channel, and in Swap mode it will receive the Left channel.


There are separate menus for the Left and Right synthesizer channels. Use CTRL-PgUp or CTRL-PgDn to move to these menus from the main board menu.



The indicated synthesizer channel is disabled. This reduces the signal about 68 dB below the Level setting. Set Level to Off also if you need even lower output.


The indicated synthesizer channel is continuously ON, at the Frequency and Level settings selected. The remaining options, which control event timing, are ignored.


Tone bursts are created with the selected parameters. One burst is output per sweep in Sequential mode only (RTime key option off). This option is not available in RTime mode, and will disappear from the menu. If you switch to RTime while Burst is active, the Off output option will be selected instead. When you turn RTime off the Burst mode will again appear and become active.

The level of the completely "off" portion of the burst is about 68 dB below that of the completely "on" portion.

While in Burst mode, the acquisition sweep is synchronized to the burst, regardless of Trigger Control Menu settings for Trigger Mode, Source, Slope, or Level. However, Trigger Delay and Cycle controls behave as usual. The trigger point that is controlled by Trigger Delay is the onset of the first burst (or gap) event on either synthesizer channel, which may be modified by the synthesizer channel Delay settings.


The converse of Burst mode, Gap keeps the tone on continuously EXCEPT for the specified Duration. Note that Rise and Fall still apply in the normal sense: The tone is on, then at the selected Delay the Fall begins, and after the selected Duration the Rise begins to return the tone to its original level until the next sweep.

As with Burst, this is only available in Sequential mode and vanishes in RTime mode. However, unlike Burst, if Gap is active when you switch to RTime the output will go to On.

Also as with Burst, the level of the completely "off" portion of the gap is about 68 dB below that of the completely "on" portion.


Sets the tone frequency in Hertz, from 2 to 24011 Hz. The synthesizer is not capable of 1 Hz resolution at higher frequencies, so you will notice coarser resolution there.

The actual frequency response of the output is not flat, but since it is controlled by the output circuit used by the board manufacturer as well as by the ESS chipset, the response curve here must be regarded as representative only.

The synthesizer output frequency response is normalized to the maximum output level at 500 to 2000 Hz. Measured values are arranged in sequence, NOT TO SCALE:

  dB              Frequency                             dB
  0                 500     2000                        0
 -0.1         156                4000                  -0.1
 -0.5        70                      7800              -0.5
 -1         47                          10800          -1
 -2        29                              15100       -2
 -3       21                                 18600     -3
 -4      16                                    23500   -4
 -6     10                                             -6
 -9     6                                              -9
 -12   4                                               -12
This is the output of the sythesizer alone, as measured by independent means. It does NOT include the input response of the ESS board. The low frequency response is not very impressive, but the high frequency response is much better than most OPL3 sound card outputs. (Remember, your card may be much different, even using the same chipset, since this is mostly controlled by the separate output amplifier.)

Output Modulation Artifacts:

The OPL3 synthesizer runs at its own fixed output sample rate of 49.7 kHz. A consequence of this is sampling "modulation" that is evident at frequencies above a few thousand Hertz. This is not just an artifact of the difference between the synthesizer sample rate and the acquisition rate. It is due to interactions between the synthesizer sample rate and the output signal frequency, and is "really there"... you can see it with an analog oscilloscope.

This may be of no consequence if you are only interested in the spectral content of the signal, say to determine threshold frquency responses of your subject or system under test. You can check the spectrum for yourself and see if it meets your needs.

Noise Output:

For the LEFT synthesizer channel only, you can convert from tone to Noise mode by attempting to set a Frequency of 0. The noise has a wide bandwidth, but unfortunately has a fairly conspicuous repeat pattern of several times per second, which is not found on true OPL3 chips. This pattern would not be noticed as a brief drum snare (the use intended by the manufacturer), but would be unsuitable as a continuous background or long-duration burst in certain perceptual experiments where the pattern may intrude. The frequency response is fairly flat, however, so it may be useful for testing loudspeakers, etc.

All the other settings apply to Noise as they apply to Frequency: Delay, Rise, Duration, Fall, and Level can be used to create noise bursts or gaps. The Level in noise mode has been set so that the RMS value of the noise is the same as that of a pure tone of 500 Hz at the same Level. The peak noise levels will be slightly higher.

Note, however, that this use of noise generation is an undocumented function of the OPL3: It may not work properly on your particular board.

In particular, on some boards the noise is accompanied by a positive or negative DC offset voltage. This DC voltage will be blocked by the board's output coupling capacitor and will thus generally cause no problems for continuous noise, but for bursts or gaps there will be a transient "thump" that may not be acceptable.

Some boards may show this DC offset problem during a given session, but if you Quit Daqarta and restart, the problem may vanish. The presence or absence of the DC seems to be "set" during board initialization, and remains that way for the remainder of the session. If you need to give noise bursts, you may thus want to check the output at the start of each session.


This is the delay, in input samples (not time units), from the start of the data sweep (trigger point) to the start of the Rise portion of a Burst, or the start of the Fall portion of a Gap. The Delay value may be made negative, to allow the stimulus to start before the data sweep. This has the same effect as positive Trigger delay if you are using only one synthesizer channel: You see events later than the "trigger" point, which here would mean the start of the burst or gap.

Because the Delay refers to the time prior to the start of the Rise portion of the tone burst, the position of the "on" part of the burst may be further delayed by the Rise time.

Since there are two synthesizer channels, it is possible to have a burst on one channel precede or lag the other by any amount up to 16000 samples. This allows all sorts of "masking" experiments, where you study the response to one stimulus (the "probe") in the presence of another (the "masker"). In a "forward masking" experiment, for example, the probe tone burst might start just after the masker burst goes off. You could study the effects of the lag between the two as well as the levels and frequencies of each. You can also do experiments where the probe burst appears at certain positions in a variable-width gap in an otherwise continuous masker.


The Rise value is the time in milliseconds for the burst to go from 10% to 90% of its final value. Unlike standard laboratory practice, however, the shape of the rise is not a sinusoid but an exponential. This is a legacy of the musical roots of the OPL3 synthesizer chip. The beginning portion of the burst thus stays at lower levels longer than an equivalent sinusoidal rise, and at longer rise times there can be a substantial "tail" (or should that be "nose"?) that precedes the 10% start of the rise. This pre-tail is not counted in the rise-time value, but it nevertheless delays the onset of the burst, so you can't determine the 90% time by calculations based on the delay samples and rise-time alone.

The rise is composed of many small steps in level that normally happen too fast to notice. But as the rise becomes slower, say 16 msec or longer, each step takes long enough that the overall effect becomes more like a staircase than a continuous curve. Even though the steps are small in amplitude, you should check to see if there are any audible or measureable consequences for your particular experiment.


This is the duration in input samples (not time units) from the start of the Rise portion to the start of the Fall portion of a burst. For a gap, it is the number of samples from the start of the Fall to the start of the Rise. Duration does not take into account the length of the Rise or Fall portions, so if you set the duration too short for a long rise time, the burst may never reach the 100% "on" portion. Similarly, a short gap duration with a long Fall time may never get all the way off.


The Fall value is the time in milliseconds for a burst to go from 90% to 10% of its final value. This is an exponential and not a sinusoidal decay, so there can be a long tail after the 10% level. Unlike Rise, however, the level steps that are used to generate this are finer and less noticeable until much longer Fall times. As a result of the musical origins of the OPL3 synthesizer, the range of Fall times is about 6 times longer than the Rise times to better approximate conventional musical sounds such as plucked strings.


The setting here is in dB relative to the maximum output for your particular board. All values other than zero are thus negative, but you don't need to include the minus sign when entering them directly... Daqarta will supply it automatically since there can be no values above zero. The maximum value of attenuation you can set is -110 dB, after which the display shows 'Off' and the output is muted.

When adjusting the Level with the cursor keys, the up-arrow gives more output, which means the dB values become smaller (less negative).


When Level is set below -110 dB, it changes to "Off". The actual leakage output in the Off state has not been measured. This Off state provides considerably more attenuation than provided by the Off of either the Master Outputs or the individual channel Output controls (or both together). Those use the OPL3 internal gating, which gives about -68 dB of attenuation. This is also the difference between the "on" and "off" portions of an output in Burst or Gap mode.

Since the Level control attenuation is in addition to that provided by the OPL3 gating, set Level to Off as well as Output when you need an absolute minimum signal.


To check the calibration of your board, connect the Left output to the Left Input and set the Master Outputs to On. Temporarily set the Left Output control to On while you adjust its Frequency to about 500 Hz while monitoring the power spectrum for minimum "skirts" at whatever sample rate you are using. This will insure the maximum energy of the signal will appear in one spectral line. Note the cursor readout Y-value of that line when the output Level is set to 0 dB, then check that you get 1 dB change in the readout for each 1 dB change in output level.

The maximum output level at 0 dB may be greater than the overload limit of your board. If so, you can either use external attenuation, or simply start your calibration at a lower Level setting.

As you get to lower output levels, the spectral line will seem jumpier and it will get closer to the general background noise. To improve this situation, you will need to use waveform averaging. (Spectrum averaging will take care of the jumpiness, but it will not reduce the background noise.) However, the noise also adds trigger jitter, making the average poorer. To avoid that, you need to use Burst or Gap mode, since with either of these the sweep is guaranteed to be in sync with the output... it initiates it.

You will need to insure that you get a full sweep of the waveform, and you will probably want to make sure the portion you look at is well away from any turn-on transients. A Burst with Duration set to 750 samples and Delay set to -200 samples will work fine with N samples = 512. (You could instead set Trigger Delay to the equivalent positive delay in msec at your sample rate, if you find that more intuitive.)

While viewing the waveform, use CTRL-A to bring up its averager menu and set the desired number of sweeps. The default of 32 is a reasonable starting value, but you will probably want more at lower levels. Hit the A-key to start the average, then (before or after it finishes) hit the F-key to go back to the frequency power spectrum. Proceed as before to compare 1 dB changes in Level with the cursor readout at the output frequency line, using a waveform average after each Level change.

Remember to flip back to waveform view before you hit the A-key to start each average, or you will be getting spectrum averages instead... you'll know it by the higher noise floor. Since this can get pretty tedious if you are going to check a lot of Level settings, you will probably want to create a Key Macro to do the work. You could make a single macro that reduced the Level by 1 dB, flipped to waveform mode, started the waveform average, and flipped back to the power spectrum.


It is often handy to have the synthesizer outputs go back to board inputs (like the CD inputs) so you can monitor the shape and timing of your stimulus signals directly. If you do this, you must make sure that the output is less than the overload limit for the selected input.

You may want to wire fixed attenuators into the connections between the outputs and inputs, such that with Level at 0 db the inputs are not overloaded. That will allow maximum Level adjustment range for the experiment itself, rather than always running with a minimum attenuation.

Furthermore, if you use an external power amplifier to get really large stimuli, you should set the amplifier's level control so that you get the maximum desired output when Level is set to 0 dB. That prevents a Level setting error from overdriving the amplifier.


  • 3-1-2001:
    • Update for Daqarta v2.00.
  • 5-22-99:
    • Now reads BLASTER environment string, if present, to get base address (and mixer address, if different), plus IRQ and DMA settings.

    • Allows A:M parameter to provide mixer address for second PnP card that has no BLASTER string.

    • Now accepts I:9 parameter (or I9 from BLASTER) which is equivalent to IRQ 2.

    • If no board is found on start-up, the error report now shows the address that was tried.


NOTE: The actual Daqarta ESS.ADC index allows you to move through it by hitting the first letter of any entry. We apologize for this "dumbed-down" Web substitue: You may scroll through it as usual, select a letter from the following line, or simply use your browser's "Find" function to search this page.



 AC Coupling, Input 
 AC Coupling, Output 
 Address Parameter A: 
 Address Parameter, Mixer A:M 
 Address, PnP Determination 
 Amplifier, External 
 Anti-Alias Input Filter 
 Artifacts, OPL3 Output Modulation 
 Attenuation, Output 
 AUTOEXEC.BAT, ESSCFG PnP Configuration Manager 


 Bits (8/16) 
 Bits Preset Parameter B:
 BLASTER Environment String
 Burst Mode, Output 


 Calibration, Input
 Calibration, Output Level
 Capacitor, Output Coupling 
 CD Inputs
 Channel (Input) Parameter C: 
 Configuration Parameters 
 Cutoff Frequency, Input Filter


 Delay, Output 
 DMA Parameter D: (8-bit) 
 DSP Version 
 Duration, Output 
 DWCFGMG.SYS PnP Configuration Manager 


 ESSCFG.EXE PnP Configuration Manager 


 F: Parameter (Help File Omit) 
 Fall, Output 
 Filter, Input Anti-Alias 
 Frequency, Output 
 Frequency Response, Input 
 Frequency Response, Measuring Input
 Frequency Response, Output 


 Gain Calibration Parameter G:
 Gap Mode, Output 


 Help File Parameter F: 


 Input Controls 
 Input Source 
 IRQ Parameter I: 


 Level, Output 
 Level, Output Calibration
 Low Frequency Response
 LPT Printer Port I/O Parameter L: 


 Masking Experiments 
 Master Outputs 
 Menus, Synthesizer Channel 
 Mixer Address Parameter A:M 
 Model Override Parameter M:
 Modulation Artifacts, OPL3 Output 


 Noise Output 
 Norm / Swap Outputs Switch 


 OPL3 Synthesizer Chip 
 Output Controls, Main 
 Output Level 
 Output Loading Requirement 
 Output Mode (Off, On, Burst, Gap) 
 Output Switching 
 Outputs, Master 
 Outputs, Monitoring 
 Overload Limits, Measuring 


 Parameters, Configuration 
 PnP Address Determination 


 Range Preset Parameter R:
 Range (Sensitivity) 
 Response, Input Frequency
 Rise, Output 


 Sensitivity (Range) 
 Settling Time
 Signal Generation, Main Output Controls 
 Synthesizer Channel Menus 
 Synthesizer Chip, OPL3 
 Source, Input 
 Swap Outputs 
 Switching, Output 


 Transients, Settling Time


 Windows PnP Configuration 

Questions? Comments? Contact us!

We respond to ALL inquiries, typically within 24 hrs.
25 Years of Innovative Instrumentation
© Copyright 1999 - 2006 by Interstellar Research