Jump to content
IGNORED

SoundBoard - GravisUltraSound for 8bit Atari


candle

Recommended Posts

As some of You already know i was working on soundcard for Atari 8bit computers that could provide major update for VBXE equipped computers

As this is prototype - it comes in form of cartridge, but final version will be internal device located at D2C0 (remember the thread about SimpleStereo board? it is off the bus at D2C0 - just because of this board :) )

 

Anyways some basic info:

 

8 channels 8bits per channel with hardware volume, panning, and envelope support

FM synthesis possible (like SID or OPL chips)

512k of fast SRAM for sample storage

 

and here is what it looks like:

 

soundboard.jpg

 

This project is in cooperation with Epi (the author of NeoTracker), and should be avaivable in october to general public ;)

Link to comment
Share on other sites

As some of You already know i was working on soundcard for Atari 8bit computers that could provide major update for VBXE equipped computers

As this is prototype - it comes in form of cartridge, but final version will be internal device located at D2C0 (remember the thread about SimpleStereo board? it is off the bus at D2C0 - just because of this board :) )

 

Anyways some basic info:

 

8 channels 8bits per channel with hardware volume, panning, and envelope support

FM synthesis possible (like SID or OPL chips)

512k of fast SRAM for sample storage

 

This project is in cooperation with Epi (the author of NeoTracker), and should be avaivable in october to general public ;)

Looks awesome!!! Sort of makes the Covox obsolete. Can I be the 1st to ask then they will be available?

 

Stephen Anderson

Edited by Stephen
Link to comment
Share on other sites

Looks awesome!!! Sort of makes the Covox obsolete. Can I be the 1st to ask then they will be available?

 

Stephen Anderson

 

Covox. Soundtrack exists from over 15 year.

SoundBoard. Must revolt.

 

And also I support it is wanted - development!

Edited by pajero_pn
Link to comment
Share on other sites

Cool... so I assume you just stuff the data and this thing can play with minimal CPU intervention, ie not timers or looping to stuff sample data?

 

How does the RAM fit into the memory map? Would be great to also be able to have RAMDisk, extra memory for games etc.

 

Will a cart only plug/play version be available as well as built-in - or are you only doing a built in version?

Link to comment
Share on other sites

Hmmm... VBXE, SoundBoard, Bob's 7.16MHz CPU upgrade...

 

Congratulations gentlemen... You've created what the next step in Atari's 8bit line should have been. With a few modern bells and whistles like lotsa lotsa RAM... So that makes an extra 1MB now that I'm not mistaken with both the video and sound upgrades... AWESOME!!!!

Edited by dwhyte
Link to comment
Share on other sites

depends on the market Garry - external version is tempting because of easy installation, but internal is way to go ultimatly

firstly you need to stuff in all sample data through one register (its not memory maped device - its like isa card where you got one io port for address and another for data)

Link to comment
Share on other sites

Hmmm... VBXE, SoundBoard, Bob's 7.16MHz CPU upgrade...

 

Congratulations gentlemen... You've created what the next step in Atari's 8bit line should have been. With a few modern bells and whistles like lotsa lotsa RAM... So that makes an extra 1MB now that I'm not mistaken with both the video and sound upgrades... AWESOME!!!!

 

Yep. It's the Atari IIGS. I know the problem isn't insurmountable but doesn't Bob's upgrade need some tweaking to co-exist with VBXE?

Link to comment
Share on other sites

  • 1 year later...

so here we go

 

specs:

 

FPGA based, Xylinx Spartan 3
16 channels, 8bit samples, 16/24bit output
build-in 2 Pokey chips cores and simple Covox interface for compatibility with existing software
Internal version sits in Pokey soket, but doesn't replace it
External version available (Cartridge), but limited to SoundBoard specific functionality (NO POKEY support in this version)

Base address: D2C0

offset    name        bits    description
0    SBchnAdr low    24    Base address of sample for playback
1    SBchnAdr mid
2    SBchnAdr high
3    SBchnLen low    16    Sample lenght
4    SBchnLen high
5    SBchnRep low    16    Sample repeat (offset to be loaded
6    SBchnRep high        when phase accumulator reaches sample lenght
7    SBchnFreq low    16    constat to be added to phase accumulator
8    SBchnFreq high
9    SBchnVol     8(6)    volume for given channel (left aligned 6 bit)
A    SBchnPan    8(6)    panning control for given channel (la 6 bit)
B    SBchnAtt    8    Attack rate for ADSR envelope generator
C    SBchnDec    8    Decay rate for ADSR envelope generator
D    SBchnSust    8    Sustain volume level for ADSR envelope generator
E    SBchnRel    8    Release rate for ADSR envelope generator
F    SBchnCtrl    3    Channel Control (see below)
10    SBsmAdr low    24    Base address of memory pointer for sample load
11    SBsmAdr    mid
12    SBsmAdr low
13    SBsmDta        8    Data register for sample load
14    SBchnNo        4    Channell number selector (0-15 selects apriopriate channell)


bitfields for SBchnCtrl:
bit    name        description
0    DMAEN        when 1 enables DMA for given channel
     when 0 disables DMA for given channel
1    Gate        when 1 ADSR generator stops at Sustain
           when 0 ADSR generator continues with Release
2    ADSREN        when 1 enables ADSR generator
           when 0 ADSR generator is bypassed
3    FMMOD        when 1 channell becomes modulator for channel n+4
           ie Channel 0 becomes modulator for channel 4
           ch. 1 -> ch. 5
           etc
           in this mode channel output is treated as follows
   Let Channell 0 is called Modulator and Channell 8 becomes Carrier, then
   Carrier.frequency=Modulator.Sample_value*(Modulator.ADSR*Modulator.Volume)
   output value is 16 bit, so Volume*ADSR can be treated as modulation depth
   only 8 upper bits of Volume*ADSR product are taken into consideration

Base clock for each channell is phi2
Memory size is 1024kB, so only 20 of 24 bits of address registers are valid
after reset all SBchnCtrl registers are zeroed, rest is undetermined
CAUTION! Playing of sample starts from beginning only when at first channel 
will be disabled then enabled; enabling yet enabled channel don't go.

 

actual implementation:

number of channels cut down to 4, FPGA used in prototype and code evaluation is quite small - its Acex 1k known from VBXE boards, and since it was developed on VBXE2 board I've decided to release VBXE2 core one could load using FC.COM

 

At this stage from software point of view there is only player for *.neo files (NeoTracker by Epi/Tristesse) - playback routine has worse case of 32 raster lines (CPU time), with average of 15 and minimum of 8

I would like to thank Mono for all his hard work he put into this project so far, because without software, even greatest hardware is worthless, and he is one of few people, who cares

 

TODO (software):

add native support for *.mod, *.s3m and *.xm files

write dedicated sound tracker

 

TODO (hardware):

make a prototype with dedicated FPGA chip and DAC converter

implement ADSR - if possible (due to limited resources of Acex chip) with VBXE2 hardware

 

Some files:

 

Audio:

Enigma.mod

Dune.mod

JSetNeo.neo

Crimson.neo

Aurora.neo

 

Tools:

Neoplay

Sample DMA test

SoundBoard.xbf - only for VBXE2 users

 

Connecting Your VBXE2 to PC Speakers (these with built-in amplifier)

Connector J5,

Pin #1 - GND

Pin #3 - Audio L

Pin #5 - Audio R

Quality of VBXE2 output will be limited down to 5bits per channel, sinice DAC used for VBXE is only 7 bit, and we're downmixing 4 channels into one

Link to comment
Share on other sites

Hi.

NEOPLAY distributed in package is .NEO files player for SDX only.

Features:

- detect SB under $D600, $D500, $D2C0 (two latters not tested for now),

- resolve wildcards * and ?,

- add .NEO extenssion if absent (empty extenssion will be forcced by ending dot f.ex. "NEOPLAY FILE*."),

- print module title and sample names (after using /X switch),

- support for NEO Tracker 1.12 and 1.4+ modules,

- panning settings for every channel separatelly (0,255,255,0 by default).

Panning values means like:

0 - most left user side,

128 - center,

255 - most right user side.

SB has 512KB SoundRAM inside so size of all samples in .NEO module must fit.

Quick help is display when player is called without parameters.

Have a fun :)

P.S. Big thanks for Epi/Tristesse for original NEO playing code.

Link to comment
Share on other sites

I made a side branch of Altirra for emulating the SoundBoard:

 

http://www.virtualdub.org/beta/Altirra-1.8-abxe-test2.zip

http://www.virtualdub.org/beta/Altirra-1.8-abxe-test2-src.zip

 

It's enabled via System/Audio/ABXE (didn't know the name at the time); it's mutually exclusive with VBXE emulation until I decouple the two.

Link to comment
Share on other sites

How did I over look this?! And a software app is being written for it as well! Perfect! I know I'll want a couple of these for sure!

 

I did wonder why so little comments, great hardware and it already emulated, an awesome pair.

 

Can't say I'm fond of the included mods but sounds great

Link to comment
Share on other sites

H.S.! I missed this too, when I was off at the Natami forum. This is amazing news... absolutely thrilling, actually. Great Work! Very impressive, even at the conceptual level, let alone to do it in FPGA, and have emulator support so quickly.

 

As far as form factor, I would vote for a box that is outside of the computer, more like the 850 interface. It would easier to upgrade later, it would look more like a real Atari Peripheral, and wouldn't have to be crammed into the computer case like all of the other mods out there. ...or, if it is small enough, build it into a set of speakers, and just add 1/8" IN/OUTs to the speaker shells. You might be able to find a lot of speakers for less money than a lot of project boxes.

 

Anyway, Best wishes on your work!

 

 

PS, Sort of off topic, but... there is now a $12,000.00 bounty for FPGA Engineers to port the Video Toaster, over at openvideotoaster.org... 

 

http://www.openvideotoaster.org/

 

All of the original source has been released, since a while back. It's worth checking out, it could help to fund all of your Atari Hardware projects, if you can do it. The bounty is valid & available until 2012, so it is quite likely to get even higher.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...