[LogoShip]

Home

Daqarta for DOS Contents

Introduction

Downloads

Free Registration

Contact Us
Daqarta for DOS
Data AcQuisition And Real-Time Analysis
Shareware for Legacy Systems
(Use Daqarta for Windows with modern systems)

From the Daqarta for DOS Help system:
 

SBPRO SIGNAL GENERATION, MAIN OUTPUT CONTROLS:


YAMAHA OPL2 / OPL3 SYNTHESIZER:

This SBPRO driver can generate test signals using the Yamaha OPL3 stereo music synthesizer chip built into the Pro 2, or the dual OPL2 chips on the earlier Pro boards. These chips have been held in low regard as music synthesizers, especially when compared to the newer "wavetable" synthesis, because the sounds they can produce are "too limited". But they 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, they can act as very good sources of pulsed or continuous random noise... which is actually very hard to obtain otherwise, and which can't be made at all with a wavetable!


OUTPUT LOADING REQUIREMENT:

The Sound Blaster Pro output is AC coupled, which means that it has a series capacitor to block internal DC voltages. The output must drive a resistive load in order to allow the capacitor to charge properly.

CAUTION:
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 SBPRO 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.


INPUT / OUTPUT MIXING LIMITATIONS:

The Sound Blaster Pro boards have a "feature" whereby Line or CD Inputs are ALWAYS mixed in with the output, which here we would prefer to contain only synthesized signals. The only way this feedthrough can be avoided is by shutting off the Line and CD inputs corresponding to the desired Left or Right output. What this means is that if the Input source is set to Line L, you will be automatically prevented from producing a synthesizer signal on the Left output. Otherwise, you would stand a good chance of blowing up something due to runaway feedback oscillations.

So, even though the built-in synthesizer can produce dual outputs, you can only use them both when you set the Input source to Mic. That's fine for low-level inputs, but for higher levels you will need an external attenuator unless you have a peculiar experiment which can tolerate the AGC action.


OUTPUT INTERFERENCE:

The Sound Blaster Pro boards suffer from a potentially serious problem: The outputs can pick up interference from the video board, and probably other system components as well. With Daqarta, this manifests itself as a small pulse, about 1 msec wide and 16 mV tall on a typical 486DX-33 system, when the output Level is set to maximum. This happens every time the trace area is redrawn, since there is a rapid and prolonged burst of video activity then. In Spectrogram mode this pulse is not found, since only a small portion of the video memory is updated at each time point.

The pulse is reduced proportionally with the output Level control or the card-edge thumbwheel. With the maximum signal output voltage of about 460 mV RMS, the 16 mV pulse would seem to be about 29 dB below it. This may be enough to allow "threshold" studies to be conducted, since if you are adjusting the output to just produce a threshold response, this pulse should be safely below it. Remember, however, that the pulse spectrum is not the same as that of the output signal. So if you are studying high frequency hearing thresholds, your subject may be much more sensitive to the pulse than to the stimulus!

To see the pulse, set the Input source to Line R and connect the Left output to the Line Right input. Set the main board menu page Master Outputs to On and use CTRL-PgUp to go to the Left synthesizer output menu. Leave its Output Off, but set its Level to 0 dB. The pulse always comes when Daqarta is "not looking" in Sequential mode, since it happens during trace updates between sweeps, so activate RTime mode to get data collection that is continuous and independent of trace updates.

To give yourself more pulses on-screen, toggle Trig to Free. Now, unless you have a very slow system or a high sample rate, you should get trace overlap... there will be more than one pulse per trace since Daqarta can show a screen faster than it can collect that much data. You will probably need to increase the trace magnification to see the pulses. Since they are at a low level, they will be quite "chunky" due to the 8-bit quantization.

You can use waveform averaging to reduce the chunkiness, even though logically you might think that wouldn't work... after all, you just toggled to Free mode, so without the trigger action the pulses should be unsynchronized with the trace. However, since they are actually produced by the very action of showing the trace, they will come at a fixed rate and timing, especially once the average gets running. Try averaging 128 or 256 sweeps for best results.

The interference pulse can be eliminated by turning off the View option, which unfortunately means you can't monitor the signal input... you can only see it when in Pause mode. But this still allows signal averaging in True mode, and will actually allow faster operation as well since no time is spent redrawing the trace. When the designated averager sweeps are completed, the trace will automatically Pause and display the averaged results.

Also, with View off you can produce stimulus Bursts, Gaps, or Pulses at higher repetition rates by using smaller values for Trigger Cycle than you could achieve with View on, and still maintain SPEC timing.

This interference problem doesn't afflict the Sound Blaster 16 boards, so if all else fails you may want to upgrade.

MASTER OUTPUTS:

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.

Due to the SBPro's unavoidable input / output mixing and the resultant interlock required by this driver, you will not be able to produce an output on the left or right channel corresponding to the left or right Input you are using. Use the opposite channel, unless the Mic input is suitable for your application.

This Master Outputs control operates the same synthesizer chip 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.


NORM / SWAP (Pro 2 only):

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.


OUTPUT SWITCHING (Pro 2 only):

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.

L:

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.

R:

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.


SYNTHESIZER CHANNEL MENUS:

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.


OUTPUT:

Off:

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.

On:

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

Burst:

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.

Gap:

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.


Frequency:

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 synthesizer output frequency response is given here, normalized to the maximum output level at 200 Hz. Measured values are arranged in sequence, NOT TO SCALE:

 dB             Frequency                           dB
 0                200                               0
-0.1          33       1200                        -0.1
-0.5        19           2500                      -0.5
-1         14              3700                    -1
-2        10                 5400                  -2
-3       8                     6800                -3
-4      6                        8100              -4
-6                                 10500           -6
-8    4                              12900         -8
-10                                    15300       -10
-12  2                                   17700     -12
-14                                        20500   -14
-15                                          22300 -15
This is the output of the sythesizer alone, as measured by independent means. It does NOT include the input response of the SBPro board.

Output Modulation Artifacts:

The OPL2 or 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:

You can convert from tone to Noise mode by attempting to set a Frequency of 0. This works with either channel for the earlier Sound Blaster Pro, but only the LEFT channel for the newer Pro 2.

The noise has a wide bandwidth and does not have any apparent repeat pattern. The non-repeating aspect is very important for perceptual experiments, since many other noise generation techniques have obvious repetition patterns that may compromise results. (You can easily hear noise patterns lasting several seconds before repeating... they sound like ocean waves rolling in to the shore.)

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 OPL2/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.


Delay:

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.

Note, however, that in order to use both synthesizer channels at once, you must use the Mic input. For Left or Right Line or CD inputs, the SBPro's unfortunate input / output mixing scheme requires that the corresponding synthesizer channel be locked out.


Rise:

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.


Duration:

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.


Fall:

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.


Level:

The setting here is in dB relative to the volume control thumbwheel setting on the back of the 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.

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

The thumbwheel setting should be made so that when Level is set to 0 (maximum output), the board output will produce some maximal calibrated output from your system. You should then take steps to lock the control into this position to prevent an accidental change of the system calibration. A piece of tape covering the thumbwheel is probably the simplest solution.

CAUTION:
The thumbwheel is at its MAXIMUM output when you roll it DOWN, toward the multi-pin MIDI connector... not exactly intuitive! The maximum possible output is about 460 mV RMS, or 650 mV peak, or 1300 mV peak-to-peak. This may be more than the inputs of some audio amplifiers require to produce maximum output... be careful!

The Sound Blaster Pro internal mixer contains fairly crude level controls which give variable step sizes from about 3.3 to 5.1 dB in two sections. By mapping out the actual step sizes for one board and combining those with the very uniform 0.75 dB steps built into the OPL3 synthesizer, the Level control is able to cover a range from 0 to -97 dB in steps of about 1 dB, with variations between steps of less than 0.5 dB... for that one board. The mixer steps may differ slightly on other individual boards and may be completely different on clones.

OUTPUT LEVEL STEP SIZE CALIBRATION:

To check the attenuation step sizes of your board, connect the Right output to the Left Input and set the Master Outputs to On. Temporarily set the Right 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, then activate the Window function (W-key). 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.

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.

At the moment, there is no simple way to install a new calibration table into the SBPRO driver, but a method will be provided if there is enough demand. For superb level control, consider the Sound Blaster 16 board, which covers a range from 0 to -135 dB and has been shown to be quite accurate down to at least -100 dB... and probably beyond, but the measurements are more tedious at the lowest levels.

LEVEL = OFF:

When Level is set below -97 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 OPL2 / 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.

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

CONNECTING OUTPUTS TO INPUTS:

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. If you really must have the output level higher to drive your experiment, you may want to wire fixed attenuators into the connections between the outputs and inputs. Otherwise, you can keep the output lower to avoid overload and use an external power amplifier to get really large stimuli.

Also, due to the channel lockouts required by the undesireable input / output mixing on the SB Pro board, you may be best off to cross-wire the Right synthesizer output to the Left input and vice-versa.


TRADEMARKS:

Sound Blaster, Sound Blaster Pro, Sound Blaster Pro 2, and Sound Blaster 16 are trademarks of Creative Technology Ltd.


SBPRO.ADC REVISION HISTORY:

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

    • 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.

  • 5-18-98:
  • 8-6-97:
    • Original driver release.


SBPRO.ADC INDEX:

NOTE: The actual Daqarta SBPRO 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.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

A:

 AC Coupling, Input 
 AC Coupling, Output 
 Address Parameter A: 
 AGC, Microphone 
 AGC Action Threshold Table 
 Anti-Alias Input Filter 
 Artifacts, OPL3 Output Modulation 
 Attenuation, Output 
 AUTOEXEC.BAT, SET BLASTER Line 
 Automatic Gain Control (AGC)

B:

 BLASTER Environment String 
 Burst Mode, Output 

C:

 Calibration, Input
 Calibration, Output Level Step Size
 Capacitor, Output Coupling 
 Channel (Input) Parameter C: 
 Configuration Parameters 
 Control, Thumbwheel 

D:

 Delay, Output 
 DMA Parameter D:
 DSP Version 
 Duration, Output 

F:

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

G:

 Gain Calibration Parameter G:
 Gain, Microphone 
 Gap Mode, Output 

H:

 Help File Parameter F: 

I:

 Impedance, Input 
 Input Controls 
 Input / Output Mixing Limitations
 Input Source
 Interference Pulse, Output
 Introduction
 IRQ Parameter I: 

L:

 Level, Output 
 Level, Output Step Size Calibration
 LPT Printer Port I/O Parameter L: 

M:

 Masking Experiments 
 Master Outputs 
 Menus, Synthesizer Channel 
 Mic Sensitivity and AGC
 Modulation Artifacts, OPL2/OPL3 Output 

N:

 Noise Output 
 Norm / Swap Outputs Switch 

O:

 OPL2/OPL3 Synthesizer Chip 
 Output Controls, Main 
 Output Interference Pulse 
 Output Level 
 Output Level Step Size Calibration 
 Output Loading Requirement 
 Output Mode (Off, On, Burst, Gap) 
 Output Switching 
 Outputs, Master 
 Outputs, Monitoring 
 Overload Limits 
 Overload Limits, Measuring 
 Overload Threshold Table 

P:

 Parameters, Configuration 
 Pulse, Output Interference 

R:

 Response, Input Frequency 
 Revision History 
 Rise, Output 

S:

 Sensitivity 
 Sensitivity, Mic input
 SET BLASTER Line 
 Signal Generation, Main Output Controls 
 Source, Input 
 Step Size, Output Level Calibration 
 Swap Outputs 
 Switching, Output 
 Synthesizer Channel Menus 
 Synthesizer Chip, OPL2/OPL3 

T:

 Thumbwheel Control 
 Trademarks

GO:

Questions? Comments? Contact us!

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