VOGONS


First post, by dreamblaster

User metadata
Rank Oldbie
Rank
Oldbie

DreamBlaster S2P : General MIDI Wavetable/FM Synthesis on parallel port
The prototypes work fine 😀
This is a parallel port version of DreamBlaster S2
Adding support for this to SoftMPU is planned.

S2P.jpg
Filename
S2P.jpg
File size
146.01 KiB
Views
2468 views
File license
Fair use/fair dealing exception

Visit http://www.serdashop.com for retro sound cards, video converters, ...
OPL2LPT, OPL3LPT, X2, S2, S2P, MCE2VGA, ... many projects !
Special vogons LPT bundle : https://www.serdashop.com/Parallel-port-retro-sound-bundle
Thanks for your support !

Reply 1 of 118, by matze79

User metadata
Rank Oldbie
Rank
Oldbie

You are crazy 😉

https://dosreloaded.de - The German Retro DOS PC Community
https://www.retroianer.de - under constructing since ever

Co2 - for a endless Summer

Reply 3 of 118, by dreamblaster

User metadata
Rank Oldbie
Rank
Oldbie

Here's a first demo : DreamBlaster S2P + SoftMPU (modified version, thanks pdr !!) :
https://youtu.be/tPb4DqWJkA8

Visit http://www.serdashop.com for retro sound cards, video converters, ...
OPL2LPT, OPL3LPT, X2, S2, S2P, MCE2VGA, ... many projects !
Special vogons LPT bundle : https://www.serdashop.com/Parallel-port-retro-sound-bundle
Thanks for your support !

Reply 5 of 118, by derSammler

User metadata
Rank l33t
Rank
l33t

Wouldn't it make more sense to use the serial port in this case instead of the parallel port? The chip uses serial input anyway and it would leave the parallel port free for another device. Imagine to have a notebook with no soundcard, but a Dreamblaster on COM2 and a Covox on LPT. 😁 😁

http://retro-net.de/blog.html

Reply 6 of 118, by Scali

User metadata
Rank l33t
Rank
l33t
derSammler wrote:

Wouldn't it make more sense to use the serial port in this case instead of the parallel port? The chip uses serial input anyway and it would leave the parallel port free for another device. Imagine to have a notebook with no soundcard, but a Dreamblaster on COM2 and a Covox on LPT. 😁 😁

The chip has both a serial and a parallel interface. The parallel interface is much simpler to use.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 7 of 118, by mrau

User metadata
Rank Oldbie
Rank
Oldbie

doesn't it take more cpu grunt to feed this with data over serial rather than paralytic? i remember trying a very small real time transfer on a k6-2 iirc over serial/paral - it was a disastrous slowdown

what chip is that anyway?

Reply 8 of 118, by Scali

User metadata
Rank l33t
Rank
l33t
mrau wrote:

doesn't it take more cpu grunt to feed this with data over serial rather than paralytic? i remember trying a very small real time transfer on a k6-2 iirc over serial/paral - it was a disastrous slowdown

In theory it doesn't, because you have a UART FIFO buffer. So you can just send bytes to the interface, and the UART will clock out the bits at the correct speed.
In practice however, a normal serial port cannot operate at the speed required for MIDI, so you'd need to manually bang out the bits.
With the parallel port, there's some simple handshaking for transferring one byte at a time.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 9 of 118, by gdjacobs

User metadata
Rank l33t++
Rank
l33t++
Scali wrote:

In practice however, a normal serial port cannot operate at the speed required for MIDI, so you'd need to manually bang out the bits.

Sort of. The primary limitation is with the base clock frequency and that's down to backwards compatibility. A UART driven with a 4 mhz crystal, for instance, would work like a treat. I believe some more modern serial modules have onboard PLL capabilities that can be programmed via LPC bus.

All hail the Great Capacitor Brand Finder

Reply 10 of 118, by matze79

User metadata
Rank Oldbie
Rank
Oldbie

i connect my SC-7 to RS232 and it works very well even on 386SX-16.
But the SC-7 has Support for RS232.

I really like this, but it will also not work with 286's 😒
Are there some plan to offer something like adpatch ?

Will this work with Windows 3.x some day ?

https://dosreloaded.de - The German Retro DOS PC Community
https://www.retroianer.de - under constructing since ever

Co2 - for a endless Summer

Reply 11 of 118, by appiah4

User metadata
Rank l33t
Rank
l33t

You, sir, are amazing. If you can combine this with an OPL3 chip on the same board and build it as a fully working parallel port sound card/wave table the internet will honor your name for centuries to come.

A500:Rev6|+512K|ACA500+|C1084S
i386:Am386SX25|4M|GD5402|ES688
i486:U5S33|8M|GD5428|YMF719
i586:P133|32M|T64V+/MX2|V1|CT3980/32M
i686:K6-2/500|256M|i740|V2/SLI|CT4520/32M
S370:P3-1200|384M|GF4-4200|MX300
S754:A3700+|2G|X800XTPE|SB0350

Reply 12 of 118, by Scali

User metadata
Rank l33t
Rank
l33t

Thanks for the work on SoftMPU, pdw!
I tried to use my MIDI player as a test tool, and I got some sound out of it, but it was not correct.
Now it seems that my main issue was that I really need to leave the USB power off the chip for a couple of seconds before it resets. So during my testing I often had 'garbage' stuck in the chip.
Now I have it working!

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 13 of 118, by matze79

User metadata
Rank Oldbie
Rank
Oldbie

When can i buy one ?

https://dosreloaded.de - The German Retro DOS PC Community
https://www.retroianer.de - under constructing since ever

Co2 - for a endless Summer

Reply 14 of 118, by Scali

User metadata
Rank l33t
Rank
l33t

I've done a quick-and-dirty MT-32 compatibility mode for my MIDI player, testing it with the Monkey Island soundtrack:
https://youtu.be/3CXgt-tLod0

It shouldn't be too difficult to add this to SoftMPU.
The DreamBlaster wants a CC 0 127 as a prefix for every PC command, to select an MT-32 instrument.
So my MIDI player scans the MIDI data, and adds the CC 0 127 everytime it encounters a PC command (on the correct MIDI channel of course).
This can be built into SoftMPU easily. Just needs a way to enable/disable it.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 15 of 118, by keropi

User metadata
Rank l33t++
Rank
l33t++

^ nice! is it the video or the experimental software/tsr to blame for notes that seem to play slower / out of sync?
This midi player, have you made it available freely?

cT89QGt.gif Amstrad PC7486SLC-33 wanted , click me for AmiBay ad!

Reply 16 of 118, by Scali

User metadata
Rank l33t
Rank
l33t
keropi wrote:

^ nice! is it the video or the experimental software/tsr to blame for notes that seem to play slower / out of sync?

It's my quick hack MIDI player. I originally made it for the IMFC. I put in support for the DreamBlaster S2P, but it requires 3.5 microseconds of delay between commands. This is done the quick-and-dirty way, like on AdLib: perform a bunch of dummy reads. This throws off the timing in the player.
I haven't tried it with SoftMPU yet, because my test-machine is a 286. I'll need to set up a 386+ machine for testing.

keropi wrote:

This midi player, have you made it available freely?

Not yet. The idea is that it preprocesses MIDI tracks to an optimized command stream, similar to my VGM player.
Then it can run with very low CPU usage, mainly relying on timer interrupts. So even suitable for an 8088 at 4.77 MHz, in the background (the main reason why early games used Intelligent MPU is probably to avoid the CPU overhead).

Last edited by Scali on 2018-01-15, 19:12. Edited 1 time in total.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 17 of 118, by keropi

User metadata
Rank l33t++
Rank
l33t++

oh I see - I'll grab the player when/if you make it available , for now I use the midplay player (along with dump for sysex data) for simple command line playback. It will be great when it's done 😀

cT89QGt.gif Amstrad PC7486SLC-33 wanted , click me for AmiBay ad!

Reply 19 of 118, by Scali

User metadata
Rank l33t
Rank
l33t

Just tested my SoftMPU patch, it seems to work fine. I added a new switch /MT32 to enable MT-32 mode for the S2P.
You can get the binary here: https://www.dropbox.com/s/v9tssu8k1samlf4/sof … p_mt32.zip?dl=0
I will see if I can make a pull request on Github to include the patch.

Edit: pull request seems to have worked: https://github.com/pdewacht/softmpu/pull/1

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/