Euphoria Sound System?

new topic     » topic index » view thread      » older message » newer message

I am in the process of writing a new 16-bit wave + midi Euphoria sound
library for dos, and have struck some problems.  I'm thinking of calling
it "Euphoria Sound System", or ESS for short.  I plan for it to be a
major improvement on previous Euphoria sound libraries, with
simultaneous operation of one or two 8 or 16-bit sound cards, interrupt
driven midi and multi-format sequencer, direct-to-disk
recording/playback, real-time wave mixer and effects, and probably
editable OPL2/3 instrument banks as well.  I am actually not very far
into it, and it is an ambitious project at best.

--  Firstly, I wish to recruit a bugtester or two.  If you have a true
16 bit Sound Blaster (DSP version >= 4.00, SB16 / AWE32 or
compatibles?), _and_ a midi plug adapter for the SB's gameport, you
could help me greatly by verifying my code is silly and not my sound
card.  Just have to connect midi in to midi out, run my buggy program,
listen to the hum for a bit and tell me what pops out under "Errors:".
Please contact me if you can help, the code's a bit big for posting on
the list.

Basically, I'm currently trying to get both 16-bit sound and the MPU-401
midi interface to work simultaneously on the newer SB's.  The good news
is it works.  The bad news is not properly.  When the DSP is producing
sound and the MPU is set and ready, somehow single 0 value bytes are
occasionally and randomly sent _out_ the MPU midi port.  These can be
captured by the looback to be studied, but reveal very little except how
well they're going to corrupt any real outgoing midi messages.  If the
program can be run by somebody without producing these glitches, I will
buy me a new sound card.

These glitches will happen even when the routine that actually has the
job of sending data out the MPU is completely removed.  Either side
works independently just fine. 8 or 16 bit waves with the MPU turned
off, fine. Midi loopback with no waves playing, fine.  Together,
Glitches!  I have massaged the code many times to no avail, and I
finally think the problem could be hardware.  This seems unlikely too,
though.  I have a SB16 PnP DSP Ver 4.13 and it doesn't appear to play up
any other time... confusing.


--  Secondly, I would like to access INT #21 for dos file operations and
wish to do so from within an assembly routine, not using the
dos_interrupt() function.  Are there any special procedures that must be
undertaken with regards to the Causeway extender to do this?  It is to
be accessed from an interrupt service routine.

Also on the same topic, how do I initialize a segmented pointer to a
low-memory buffer [ds:si] for what I assume is 16-bit code when all I
have is the linear 32-bit address of the buffer and I want to sort of
keep my data segment? I'm not sure how to use the lea instruction in
this context.  Also all in assembly for the same direct-to-disk
recording or playback ISR...

Anyway, I'm stumped.  Please, help me out if you can.

--
  Nick Metcalfe <metcalfn at alphalink.com.au>
  http://www.alphalink.com.au/~metcalfn

new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu