Reply 20 of 38, by jxalex
inthe SoundBlaster spec I see that many things could be done better (the 16bit IO and 16bit DMA usage for fullduplex mode) but have been kept on such level becouse of compatibility.
Still, how come that the Gravis Ultrasounds emulating the SB is weak point? (Modplay Pro 2.19b does not work with GUS MAX on 486). The GUS MAX uses the CS4231A which is itself with 8bit bus, 8bit DMA equipped, (thus with port mapping all should be done in hardware).
Still surprise. THe GUS MAX works under the win3.x only with 8bit DMA! Why? UNder the DOS it works with 16bitDMA too. there is a tremendous difference when using the DMA channel 1 or 6 😀
Came do decision to these specifications for development that the first experiment to make as simple as possible, thus then it is simpler to add the features or upgrade them in modules.
*alright... the on development card itself can be SB16 compatible, with its low and high DMA, but the 8bit I/O usage will be switchable to NOWS. The reported DSP version will be then 4.00
at first.
*also the whole card can free the ressources just by software (so it will free ports, DMA and IRQ channels. Just when other cards need them in the system with 3..4 soundcards). The tricky thing here is just to see what sort of IO adress can be reserved for this feature (hey the simplest way is to add the tumbler switch to back panel 😉 ).
*For a 24bit operation the double 16bit DMAs can be used for in the separate DOS recording software.
*Debuging leds: the fifo utilization/load, digital audio error stream led, midi I/O, DMA low dma high channel activity, sampling rate lock led (incoming digital), 32 / 44 /48 / 88 / 96kHz leds.
*connectors: optical 2x and DB9F or DB15F socket for breakout cable for digital in/out, MIDI IN/out, wordclock in/out, +5V
*Digital audio separate 512bytes FIFO for playback and record. (can be customizable as these chips are standard),
*optional SRC in order to convert the non-standard sample rates to any sample rate during playback
(the external DACs cant accept always the 62000 / 22050 / 22000 / 11000 etc sample rates, the 32kHz is lowest on studio dac racks). I am not into need for this, however those who are into gaming or like the old module players with non-standard sample rates, this can be really generous then.
pins for this IO reserved: serial clock in, LRCLK in, serial data i2s compatible 64 x fs, serial data out, LRCLK out, master clock signal 128 x fs in, master clock signal to dac out.
* in the future the option for digital audio interpolating from 8bit to 16bit can be useful for slow 286, 386 computers. Well here the algorithm needed. The hardware option can get the following
pins for this IO reserved: serial clock in, LRCLK in, serial data i2s compatible 64 x fs, serial data out, LRCLK out, master clock signal 128 x fs in, master clock signal to dac out.
* no mixers or other analog audio ports as it can added later just like general midi synth.
* mp3 (and other formats) with the extra chip, VS1063. (With additional software, which purpose is just to feed the incoming stream data to card port, go ahead you have a radio stream player under DOS as a TSR)
The wondering thoughts:
0* that "sound clicking" bug between DMA transfers. Perhaps it can be fixed with interpolating (by repeating the same last sample byte several times?) . Optional, can be adapted in firmware.
1* MIDI /MPU401 port... how much FIFO should be enough for sending and receive? 16..64..512 ? (leaving this option open too). (So, wake up trackers with midi controllers!)
2.*The DMA chip... can be with 2 x 8237, the 5Mhz version should be enough perhaps. I guess it should simplify the count of transferred bytes and IRQ generating.
Or perhaps there should be instead a counters for data activity and T-flipflops?
3* that ADPCM compression in hardware. Which software ever uses that?
I have seen it on the GUS and SB documentation, however never ever seen that in action during record or playback. Also not even the ESS IMA-ADPCM is practical as only its own audiorack can play it.
At first after the board is running the challenge is to get the board running with 96kHz sampling rate with 24bit DAC/ADC modules in half duplex mode on a 486. (if the bus speed allows -- 700..768kB/s, I do not remember if I did in the past multitrack on a 486 with 4 stereo pairs 16bit audio at 44/48kHz).
The hardware preparation: the FIFOs 512bytes, with 16bit DMA transfers to try with all modes possible for own program. as a last resort if needed then the data truncating in hardware from 32bit to 24bit (thus reducing the data flow from 768kB to 529kB/s on ISA bus).
4.* So, can be interfaced to 24bit DAT recorders or DA88 compatible and synced on a setup with master word clock.
TIMECODE, MIDI CODE for synchronizing through MIDI port or separate line(!). And so there will be this as a tape recorder.
The other uses:
iN THEORY thats the first molecule of the digital oscilloscope too if to modify the accessories connected to AES/EBU lines and the software which assumes that the incoming data stream is actually a short 40..200MS/s bursts through the digitizing buffers with a free choice of data bit depth. 😉
Current project: DOS ISA soundcard with 24bit/96Khz digital I/O, SB16 compatible switchable.
newly made SB-clone ...with 24bit and AES/EBU... join in development!